•wefgef
|
 |
« : Decembrie 14, 2008, 14:27:56 » |
|
Aici puteti discuta despre problema Kprime.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•drag0s93
Strain
Karma: 0
Deconectat
Mesaje: 14
|
 |
« Răspunde #1 : Ianuarie 09, 2009, 22:27:17 » |
|
pb asta e corecta? deci rasp ar fi 3 (perechile (1,2),(1,3),(2,3))  .....sau  explikti mi si mie careva ..... 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #2 : Ianuarie 09, 2009, 22:30:49 » |
|
1 nu este prim, iar pentru exemplul secventele sunt 1 2 4 3 8 1 2 4 3 2 4 3 8 2 4 3 Numerele trebuie sa fie pe pozitii consecutive
|
|
|
Memorat
|
|
|
|
•drag0s93
Strain
Karma: 0
Deconectat
Mesaje: 14
|
 |
« Răspunde #3 : Ianuarie 09, 2009, 22:32:17 » |
|
aa srry ....da am crezut ca doar nr prime sa fie srry  ms 
|
|
|
Memorat
|
|
|
|
•drag0s93
Strain
Karma: 0
Deconectat
Mesaje: 14
|
 |
« Răspunde #4 : Ianuarie 09, 2009, 23:31:54 » |
|
mai da ti mi si mie un exemplu am facut pb dar nuj imi da killed by signal..... 
|
|
|
Memorat
|
|
|
|
•marcelcodrea
|
 |
« Răspunde #5 : Ianuarie 09, 2009, 23:53:59 » |
|
|
|
|
Memorat
|
Imperiile coloniale au murit... Germania Nazistä a murit... Uniunea Sovieticä a murit... Si nici Uniunea Europeanä nu se simte prea bine
|
|
|
•gabitzish1
|
 |
« Răspunde #6 : Ianuarie 10, 2009, 00:14:01 » |
|
mai da ti mi si mie un exemplu am facut pb dar nuj imi da killed by signal.....  Poti sa faci tu niste teste si sa le postezi aici, sa vezi care e raspunsul celor care au luat 100.
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #7 : Ianuarie 10, 2009, 20:53:12 » |
|
Primesti "killed by signal 11" din cauza ca declari o matrice de 10.000 * 10.000 de long long.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•funkydvd
Strain
Karma: -9
Deconectat
Mesaje: 13
|
 |
« Răspunde #8 : Mai 15, 2009, 19:03:04 » |
|
Pentru cei interesaţi, problema aceasta se poate rezolva şi în complexitate O(n), cu ajutorul unui vector de frecvenţă.
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #9 : Mai 16, 2009, 05:45:43 » |
|
Sunt curios cum  . Ai n log n de la ciur oricum.
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #10 : Mai 16, 2009, 07:39:23 » |
|
Ciurul se rezolva in O(N log log N), si in plus numerele sunt mai mici decat 1000, deci complexitatea finala iese O(N) 
|
|
|
Memorat
|
|
|
|
•recviem
Client obisnuit

Karma: -26
Deconectat
Mesaje: 62
|
 |
« Răspunde #11 : Mai 24, 2009, 10:57:09 » |
|
Doar o idee: "Elementele sirului vor cuprinse intre 1 si 1000" se poate folosi un sir de constante pentru ciur.
|
|
|
Memorat
|
|
|
|
•siminescu
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #12 : Iunie 04, 2009, 14:13:45 » |
|
nu ma dragos uita.te la comentariul care e inaintea ta  perechile sunt: 1 2 4 3 8 1 2 4 3 2 4 3 8 2 4 3... nu conteaza cat de lung este sirul ci conteaza sa aiba 2 nr prime
|
|
|
Memorat
|
|
|
|
•Alexa_ioana_14
Strain
Karma: 6
Deconectat
Mesaje: 37
|
 |
« Răspunde #13 : August 25, 2009, 06:55:31 » |
|
Pt sirul: d=(1 2 4 3  am folosit vect v=(0 1 1 2 2), unde v[ i ] reprezinta cate nr prime am pana pe poz i inclusiv si vectorul p=(1 2 2), unde p[ i ] numara cati i am in vectorul v[ i ]. apoi de la 1 la n caut binar x=caut(v[ i ]+m) (daca d[ i ]!=prim) sau x=(v[ i ]+m-1) (daca d[ i ]==prim), iar nr+=p[ v [ x ] ]; pe testele date de mine da bine, dar pe site iau 0pct. Imi poate spune cineva unde gresesc, pls? [ si un contra-exemplu e bun  ]
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #14 : August 25, 2009, 11:50:24 » |
|
O solutie simpla este sa retinem intr-un tablou p[] toate pozitile numerelor prime din sirul initial, in ordine crescatoare. Apoi, facem o simpla interatie cu i de la 1 la nr_p (nr_p = numarul elementelor lui p[]) si adaugam la solutie (p[ i ] - p[ i-1 ]) * ( p[j+1] - p[ j ]), unde j = i+K-1, iar p[0] = 0 si p[nr_p+1] = N+1.
|
|
|
Memorat
|
|
|
|
•cr1st18
Strain
Karma: 1
Deconectat
Mesaje: 39
|
 |
« Răspunde #15 : Septembrie 01, 2009, 12:28:20 » |
|
nu inteleg cum se poate folosi cautarea binara aici....?
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #16 : Septembrie 02, 2009, 16:46:54 » |
|
|
|
|
Memorat
|
|
|
|
•shnako
Client obisnuit

Karma: 3
Deconectat
Mesaje: 50
|
 |
« Răspunde #17 : Februarie 22, 2010, 12:27:48 » |
|
Ce inseamna "Killed by signal 6(SIGABRT)." ?  Mentionez ca pe MinGW merge perfect.
|
|
|
Memorat
|
|
|
|
•ctlin04
|
 |
« Răspunde #18 : Iulie 22, 2011, 17:11:46 » |
|
ma ajuta cineva la problema asta, iau WA pe testele grupate si nu inteleg de ce, am facut programul dupa ideea mentionata mai sus de Florian Marcu pentru ca nu ma prea pricep inca la cautare binara, pentru exemplele mele merge bine, dar totusi ""incorect"" 
|
|
|
Memorat
|
|
|
|
•ctlin04
|
 |
« Răspunde #19 : Iulie 22, 2011, 17:31:17 » |
|
LE: s-a rezolvat doar trebuia sa maresc limitile 
|
|
|
Memorat
|
|
|
|
•avram_florin
Strain
Karma: -1
Deconectat
Mesaje: 10
|
 |
« Răspunde #20 : Martie 28, 2012, 20:04:44 » |
|
imi poate spune si mie cineva ce e gresit in abordarea aceasta ca nu ma prind... for( int i = 1 ; i <= N ; ++i ) { scanf("%d" , &A[i] ); if( A[i] & 1 ) if( !ciur[A[i]] ) S[i] = S[i-1]+1; else S[i] = S[i-1]; else if( A[i] == 2 ) S[i] = S[i-1]+1; else S[i] = S[i-1]; } int j1,j2,i,Sol; j1 = j2 = 1; Sol = 0; for( i = 1 ; i <= N ; ++i ) if( S[i] >= K ) { while( S[j2] + K <= S[i] ) ++j2; while( S[j1] + K < S[i] ) ++j1; Sol += (j2-j1+1); }
Editat de moderator: Folositi tag-ul code cand postati cod sursa.
|
|
« Ultima modificare: Martie 28, 2012, 20:20:33 de către Mihai Calancea »
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #21 : Martie 28, 2012, 20:17:40 » |
|
Niste sfaturi: Daca te referi la ideea de rezolvare, atunci nu posta cod, ci expune-o in cuvinte. Daca te referi la implementare, sa faci debug pe codul altcuiva este foarte greu si pana la urma mult mai putin folositor decat daca persoana in cauza l-ar face singur.
|
|
|
Memorat
|
|
|
|
|