•CezarMocan
|
 |
« Răspunde #75 : Martie 07, 2010, 17:55:16 » |
|
Iti explic eu  . Prima problema ar putea fi reformulata in felul urmator: sa se gaseasca numarul de partitii ale lui N (partitie = sir de numere cu suma N), de lungime D (adica formate din D numere), astfel incat fiecare numar din partitie sa fie >= K. Pentru a rezolva asta facem programare dinamica: C[ i ][ j ] = numarul de solutii daca am fixat primele i numere din partitie si avem obtinuta suma j. Raspunsul se va gasi in C[D][N]. Te las sa te gandesti la recurenta, daca vrei ti-o zic. Se poate face in O(N^2 * D) - facand dinamica inainte, sau daca optimizezi in O(N * D), cu sume partiale. La cea de-a doua e mai simplu, dupa ce ai determinat toate cuvintele tii sirul D[ i ] cu semnificatia lungimea maxima a unui lant avand proprietatea din enunt care se termina cu cuvantul i, si L[ch] = lumgimea maxima a unui lant pana la pozitia i (adica din ce am calculat pana acum) care se termina cu caracterul ch. D[ i ] = L[prima_litera_din_cuvantul_i] + 1. Si daca D[ i ] > L[ultima_litera_din_cuvantul_i] atunci actualizezi valoarea din L. Raspunsul va fi numarul de cuvinte - maximul din sirul D (numarul minim de cuvinte eliminate). Pentru a face reconstituirea se tine un vector suplimentar, prev[ i ] = cuvantul care vine inaintea cuvantului i in solutia care da valoarea D[ i ]. Sper ca ai inteles! Spor la implementat! 
|
|
|
Memorat
|
|
|
|
•moon
Strain
Karma: -7
Deconectat
Mesaje: 28
|
 |
« Răspunde #76 : Martie 07, 2010, 18:27:07 » |
|
Ca sa verific k-ul as fi putut sa implementez de mai multe ori dijkstra (de 9 ori maxim, din moment ce k era intre 2<10) ... sau as fi putut sa construiesc muchiile treptat, pe baza celor vizitate anterior  . Oricum, chiar si daca nu as fi verificat k-ul, sunt sigur ca ar fi obtinut >= 30 puncte.
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #77 : Martie 07, 2010, 18:39:42 » |
|
Nu inteleg ce e gresit la urmatoarea dinamica (inafara de faptul ca gradul de complexitate nu este optim ) : (clasa a X-a, problema a 2-a ) nrmin[ i ] = numarul minim de cuvinte ce trebuie sterse (din primele i-1 cuvinte ) ca sa obtinem un text ce respecta regulile enuntului, acel text terminandu-se cu al i-lea cuvant for( i=1; i<=nr_cuvinte; i++) {
nrmin[i]=i-1; //stergem tot ce e in stanga
for( j=1 ; j<i; j++) if( respecta_regula(j,i) && nrmin[ i ] > nrmin[j]+(i-j-1) ) nrmin[ i ]=nrmin[j]+(i-j-1); //sterg cuvintele j+1,...,i-1 }
//aflam rezultatul int minim=INF; //infinit
for( i=1; i<=nr_cuvinte; i++) if( nrmin[ i ] + (nr_cuvinte-i) < minim ) //pastrez rezultatul optim pentru primele i cuvinte si sterg tot din dreapta minim = nrmin[ i ] + (nr_cuvinte-i);
|
|
« Ultima modificare: Martie 07, 2010, 18:48:28 de către Popoiu George »
|
Memorat
|
|
|
|
•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #78 : Martie 07, 2010, 18:46:47 » |
|
Ca sa verific k-ul as fi putut sa implementez de mai multe ori dijkstra (de 9 ori maxim, din moment ce k era intre 2<10) ... sau as fi putut sa construiesc muchiile treptat, pe baza celor vizitate anterior  . Oricum, chiar si daca nu as fi verificat k-ul, sunt sigur ca ar fi obtinut >= 30 puncte. Daca nu iei k-ul in considerare = 0 pct.
|
|
|
Memorat
|
|
|
|
•O_Neal
Strain
Karma: 0
Deconectat
Mesaje: 15
|
 |
« Răspunde #79 : Martie 07, 2010, 19:02:29 » |
|
evaluatorul folosit se poate gasi undeva? nu inca nu? sau? iar despre teste?  daca le aveti sau ceva.. spuneti.. skull ti-am dat PM cu mail(mai devreme si am dat unu si acu) sa imi trmiti daca ai, mersi!
|
|
|
Memorat
|
|
|
|
•f.v.anton
Strain
Karma: 1
Deconectat
Mesaje: 35
|
 |
« Răspunde #80 : Martie 07, 2010, 19:09:38 » |
|
Ca sa verific k-ul as fi putut sa implementez de mai multe ori dijkstra (de 9 ori maxim, din moment ce k era intre 2<10) ... sau as fi putut sa construiesc muchiile treptat, pe baza celor vizitate anterior  . Oricum, chiar si daca nu as fi verificat k-ul, sunt sigur ca ar fi obtinut >= 30 puncte. Daca nu iei k-ul in considerare = 0 pct. garantez si eu pt asta, ca asa am facut eu, nu l-am luat in considerare si ma asteptam sa prind ceva puncte, dar de unde...0. 
|
|
|
Memorat
|
|
|
|
•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #81 : Martie 07, 2010, 19:22:10 » |
|
evaluatorul folosit se poate gasi undeva? nu inca nu? sau? iar despre teste?  daca le aveti sau ceva.. spuneti.. skull ti-am dat PM cu mail(mai devreme si am dat unu si acu) sa imi trmiti daca ai, mersi! N-am primit niciun PM. Gasesti evaluatorul pentru XI-XII aici sau aici.
|
|
|
Memorat
|
|
|
|
•O_Neal
Strain
Karma: 0
Deconectat
Mesaje: 15
|
 |
« Răspunde #82 : Martie 07, 2010, 19:32:48 » |
|
am dat 3 PM-uri nush de ce nu s-au trimis.. mersi l-am luat
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #83 : Martie 07, 2010, 19:39:18 » |
|
@skull Il vreau si eu pentru a X-a te rog. Il ai ?
LE : Ti-am dat si eu PM.
|
|
« Ultima modificare: Martie 07, 2010, 19:46:54 de către Popoiu George »
|
Memorat
|
|
|
|
•dornescuvlad
|
 |
« Răspunde #84 : Martie 07, 2010, 19:59:03 » |
|
pune-l si pe cel de-a zecea te rog aici 
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #85 : Martie 07, 2010, 20:01:47 » |
|
Iti explic eu  . Prima problema ar putea fi reformulata in felul urmator: sa se gaseasca numarul de partitii ale lui N (partitie = sir de numere cu suma N), de lungime D (adica formate din D numere), astfel incat fiecare numar din partitie sa fie >= K. Pentru a rezolva asta facem programare dinamica: C[ i ][ j ] = numarul de solutii daca am fixat primele i numere din partitie si avem obtinuta suma j. Raspunsul se va gasi in C[D][N]. Te las sa te gandesti la recurenta, daca vrei ti-o zic. Se poate face in O(N^2 * D) - facand dinamica inainte, sau daca optimizezi in O(N * D), cu sume partiale. La cea de-a doua e mai simplu, dupa ce ai determinat toate cuvintele tii sirul D[ i ] cu semnificatia lungimea maxima a unui lant avand proprietatea din enunt care se termina cu cuvantul i, si L[ch] = lumgimea maxima a unui lant pana la pozitia i (adica din ce am calculat pana acum) care se termina cu caracterul ch. D[ i ] = L[prima_litera_din_cuvantul_i] + 1. Si daca D[ i ] > L[ultima_litera_din_cuvantul_i] atunci actualizezi valoarea din L. Raspunsul va fi numarul de cuvinte - maximul din sirul D (numarul minim de cuvinte eliminate). Pentru a face reconstituirea se tine un vector suplimentar, prev[ i ] = cuvantul care vine inaintea cuvantului i in solutia care da valoarea D[ i ]. Sper ca ai inteles! Spor la implementat!  Cam asa am facut si eu.
|
|
|
Memorat
|
|
|
|
•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #86 : Martie 07, 2010, 20:03:31 » |
|
Nu-l am decat pe cel de la XI-XII. 
|
|
|
Memorat
|
|
|
|
•andrei-alpha
Client obisnuit

Karma: 103
Deconectat
Mesaje: 91
|
 |
« Răspunde #87 : Martie 07, 2010, 20:53:09 » |
|
Au fost adaugate problemele de la OJI 11-12 in Arhiva de probleme.
|
|
|
Memorat
|
|
|
|
•moon
Strain
Karma: -7
Deconectat
Mesaje: 28
|
 |
« Răspunde #88 : Martie 07, 2010, 20:53:55 » |
|
Metoda greedy obtine 10 puncte si nu tine cont de k....
|
|
|
Memorat
|
|
|
|
•dornescuvlad
|
 |
« Răspunde #89 : Martie 07, 2010, 20:56:36 » |
|
Bogdan Andre, te rog pune si la a 10-a
|
|
|
Memorat
|
|
|
|
•GavrilaVlad
|
 |
« Răspunde #90 : Martie 08, 2010, 19:26:20 » |
|
Problemele de la a 10-a cat si de la a 9-a sunt in lucru. Vor aparea zilele urmatoare 
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #91 : Martie 09, 2010, 15:08:45 » |
|
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•Robytzza
|
 |
« Răspunde #92 : Martie 09, 2010, 15:29:45 » |
|
|
|
|
Memorat
|
|
|
|
|
•smith_s9
Strain
Karma: -6
Deconectat
Mesaje: 7
|
 |
« Răspunde #94 : Martie 10, 2010, 09:58:45 » |
|
Felicitari celor calificati! Ne vedem la ONI  . Eu am luat 70 de puncte, back la ambele probleme (a XII-a). Pt immortal imi mai ramasese doar o ora si in graba am facut o eroare in gandire si am facut o solutie cu complexitate mai mare decat era nevoie. Am luat 40p  ).
|
|
|
Memorat
|
|
|
|
•za_wolf
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #95 : Martie 10, 2010, 12:07:45 » |
|
|
|
|
Memorat
|
|
|
|
•dornescuvlad
|
 |
« Răspunde #96 : Martie 10, 2010, 17:28:02 » |
|
cand se pun loturile 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #97 : Martie 10, 2010, 17:44:39 » |
|
cand se pun loturile  Asta depinde de fiecare județ. La noi, de exemplu s-a afișat lotul pentru oni.
|
|
|
Memorat
|
|
|
|
•dornescuvlad
|
 |
« Răspunde #98 : Martie 12, 2010, 23:24:24 » |
|
E real sau e doar un scenariu inventat de tine pt a ironiza subiectele ? 
|
|
|
Memorat
|
|
|
|
•cricri
Strain
Karma: -3
Deconectat
Mesaje: 5
|
 |
« Răspunde #99 : Martie 12, 2010, 23:35:48 » |
|
E real sau e doar un scenariu inventat de tine pt a ironiza subiectele ?  din pacate,real....
|
|
|
Memorat
|
|
|
|
|