Pagini: 1 [2] 3   În jos
  Imprimă  
Ajutor Subiect: 198 Custi  (Citit de 15351 ori)
0 Utilizatori şi 2 Vizitatori pe acest subiect.
c_adelina
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #25 : Septembrie 20, 2010, 19:35:30 »

Am mare nevoie de un hint la prbl asta,am rezolvat-o in (N*N*logN), dar am vazut ca exista cateva surse cu timpi sub 0.05 Embarassed. Multumesc anticipat!
Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #26 : Septembrie 20, 2010, 19:58:21 »

Am mare nevoie de un hint la prbl asta,am rezolvat-o in (N*N*logN), dar am vazut ca exista cateva surse cu timpi sub 0.05 Embarassed. Multumesc anticipat!

Pai rezolvi cu dinamica in O(N^2):

dp[ i ][ j ] = lungimea celei mai mari submatrice patratice plina de 1 ce are coltul din dreapta jos in pozitia (i, j).

dp[ i ][ j ] se calculeaza in O(1)

Te las pe tine sa-ti dai seama cum calculezi numarul de submatrice plina de 1.
Memorat
c_adelina
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #27 : Septembrie 21, 2010, 20:24:35 »

gata  Yahoo! ms moolt pt ajutor  Ok  , mare diferenta intre O(1) si O(logN) vreo 200-300 ms Smile)) , totusi nu inteleg cum au scos unii sub 0.05.  Weightlift
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #28 : Septembrie 21, 2010, 21:03:54 »

Au parsat citirea. Adica au citit inputul ca string si l-au convertit apoi manual in numere. Merge mult mai repede, mai ales pentru 10 ^ 6 numere.
Memorat
NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #29 : Iulie 19, 2012, 18:19:40 »

Salut, am luat TLE pe 3 teste [desi nu stiu de la ce].
Am facut o dinamica in O(N^2) si actualizez datele la fiecare pas al dinamicii, dar nu stiu care-i faza. Parsarea citirii poate face diferenta intre 70 si 100?
Memorat
alex_unix
Strain
*

Karma: 22
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #30 : Octombrie 06, 2012, 21:57:43 »

O(n^2) cred ca intra in timp cu functiile din <cstdio> doar daca parsezi citirea . Cum nu cred ca asta era scopul problemei, poate mariti putin limita de timp daca sunteti de aceeasi parere cu mine  Tongue
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #31 : Octombrie 23, 2012, 17:36:26 »

De ce e asa comunista problema asta? Am trimis doar citirea cu scanf() + O SINGURA atribuire si imi da TLE la cateva teste. Am incercat si cu citire parsata si la fel face. Nici o diferenta.  Brick wall
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #32 : Octombrie 23, 2012, 18:30:49 »

Functia strlen() are complexitatea O(N), deci practic tu ai acolo O(N^3).
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #33 : Octombrie 23, 2012, 19:46:00 »

Functia strlen() are complexitatea O(N), deci practic tu ai acolo O(N^3).

Am reusit! Nu mi-as fi dat seama de chestia asta in veci!  Fool Iti multumesc mult! Shocked
Se pare ca trebuie sa rectific ce am zis mai sus. Problema nu e comunista, e cat se poate de capitalista.  Applause
Memorat
dariusdarius
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #34 : Noiembrie 03, 2012, 10:53:53 »

Timpul problemei asteia este gresit!!! Am facut problema O(n*n), doar partea de CITIRE si inca 2 for-uri de la 1 la n si imi da TLE Brick wall Brick wall Brick wall Brick wall
Memorat
dariusdarius
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #35 : Noiembrie 03, 2012, 11:03:46 »

Ignorati mesajul interior, am schimbat din scanf/printf in cin/cout si am luat 100
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #36 : Februarie 02, 2013, 12:06:18 »

Eu am inteles solutia O(n^2) dar sunt chiar curios de cea in O(nlogn). Cutare binara? Un hint, ceva, va rog.

,Andrei
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #37 : Februarie 02, 2013, 14:02:17 »

Nu ai cum sa scoti o solutie in O(N log N) din moment ce ai complexitate O(N^2) doar pentru citirea matricii.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #38 : Februarie 04, 2013, 22:49:53 »

Vroiam sa zic O(n^2*logn). Greseala mea.

,Andrei
Memorat
taigi100
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #39 : Februarie 26, 2013, 18:59:51 »

Ok... Ma chinui de cateva ore si nu reusesc sa-mi dau seama ce e in neregula cu sursa mea  Brick wall , pe primele 4 teste obtine punctaj maxim dar pe urmatoarele imi da o eroare de care nu am mai auzit.
Aici is rezultatele testelor:
Cod:
1	12ms	1972kb	OK	10
2 4ms 348kb OK 10
3 4ms 468kb OK 10
4 4ms 644kb OK 10
5 4ms 248kb Killed by signal 6(SIGABRT). 0
6 4ms 248kb Killed by signal 6(SIGABRT). 0
7 4ms 248kb Killed by signal 6(SIGABRT). 0
8 4ms 252kb Killed by signal 6(SIGABRT). 0
9 4ms 248kb Killed by signal 6(SIGABRT). 0
10 4ms 248kb Killed by signal 6(SIGABRT). 0
Punctaj total 40
Din cate stiu nu pot sa pun sursa pe forum deci cine e dispus sa ma ajute va rog sa imi da-ti un pm.Multumesc.
Memorat
Methus
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #40 : Februarie 26, 2013, 20:56:40 »

Stiu ca nu este cel mai potrivit loc pentru aceasta, insa daca tot sunt la aceasta problema doresc sa va indreb Q_Q Cum incep un program? In DEV C++ totul este inregula insa in Code::Blocks nu imi gaseste directoriul iostream.h si nici fstream.h Nu merge fara .h de asemenea. Observ ca aceasta chestie imi afecteaza evaluarea.  Embarassed
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #41 : Februarie 26, 2013, 21:32:48 »

Cele cu .h sunt deprecated, doar cele din C-ul vechi se mai pastreaza cu .h (gen stdio.h, stdlib.h, string.h, care in C++ sunt cstdio, cstdlib, cstring). Pentru fstreamuri, varianta noua este aceasta L
Cod:
# include <fstream> // sau # include <iostream>
using namespace std; // aici sunt citirile si tot ce trebuie, citeste pe cplusplus.com
Memorat
Methus
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #42 : Februarie 26, 2013, 21:40:26 »

o, nice
merci \o/
sper ca acum o sa-mi iasa ceva c:
Memorat
Eby7
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #43 : Iunie 13, 2013, 16:38:09 »

Iau 30 pe asta(TLE)... daca imi poate explica cineva ce trebuie sa mai modific pentru a da in timp.


Cod:
#include<fstream>
using namespace std;
ifstream f("custi.in");
ofstream g("custi.out");
int n,x,sum[1001][1001];
int i,j,k;
int nr,nr1;
int s;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {
        f>>x;
        if(x==1)
         nr1++;
        sum[i][j]=x+sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1];
    }
    g<<nr1<<"\n";
    for(k=2;k<=n;k++)
    {
        nr=0;
        for(i=k;i<=n;i++)
         for(j=k;j<=n;j++)
         {
             s=sum[i][j] - sum[i-k][j] - sum[i][j-k] + sum[i-k][j-k];
             if(s==(k*k))
              nr++;
         }
         g<<nr<<"\n";
    }
    return 0;
}
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #44 : Iunie 13, 2013, 17:00:26 »

E prea mare complexitatea. Citeste ce s-a mai postat pe forum si incearca sa scoti O(n^2).
Memorat
reking
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #45 : Septembrie 24, 2013, 19:27:10 »

Vreun sfat?
http://www.infoarena.ro/job_detail/1001305
Dupa parerea mea am O(n*n) dar totusi iau TLE pe 3 teste  Very Happy
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #46 : Septembrie 24, 2013, 20:45:15 »

Eu nu sunt de aceeasi parere... Smile. Ai acolo un for, care chiar daca e micut, conteaza Smile).
Cod:
  for (k=1;k<=b[i][j];k++) h[k]++; 
Incearca sa scapi de el.
Memorat
reking
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #47 : Septembrie 24, 2013, 21:14:32 »

Corect, greseala mea.  Very Happy
Si...vreo idee sa reduc acea parcurgere? (nu-mi vine nimic in minte)  Brick wall
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #48 : Septembrie 24, 2013, 21:48:59 »

O idee ar fi smenul lui mars. Dar exista si alta solutia mai simpla. Gandeste-te in felul urmator : toate actualizarile sunt de forma [1..X], unde X e b[ i ][ j ] (la tine). Incearca sa scoti o solutie astfel incat actualizarile sa le faci in O(1).
Memorat
reking
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #49 : Septembrie 30, 2013, 19:57:49 »

Am reusit sa duc sursa la 90 de puncte  Applause
http://www.infoarena.ro/job_detail/1003513
La "metoda" asta te refereai? (chiar daca nu prea am facut-o in O(1)...cred ca undeva pe la O(2) sau O(3) )
Memorat
Pagini: 1 [2] 3   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines