Afişează mesaje
|
Pagini: 1 ... 4 5 [6] 7
|
132
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 045 Subsir
|
: Ianuarie 11, 2010, 21:01:17
|
Iau 70pct, si ma chinui de 4 ore la problema asta. Pe tesul acesta imi da matricea Nr la fel ca celor care au mai postat inaintea mea. Iau WA pe testele 4,5 si 9. Problema cred ca este la calcularea solutiei. Matricea Nr cred ca o calculez bine. Am citit si pe forum si in aricolu cu solutii, dar nu prea am inteles cum sa determin solutia. Imi puteti explica? Multumesc anticipat! P.S: Eu determin solutia parcurgand matricea Nr, si iau cel mai mare Nr[ i ][j] pentru care cmls[ i ][j]=lungimea celui mai lung subsir comun si a[ i ]==b[j] , si ma indoiesc ca e corect... L.E. : Am rezolvat, era de la calcularea solutiei.
|
|
|
134
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 026 Energii
|
: Ianuarie 10, 2010, 20:38:25
|
Fac dinamica si tin o matrice Cost(i,j) = costul minim necesar pentru a da o energie >=j, folosind primele i generatoare si iau 0 puncte. intr-un vector sum(i) retin suma energiilor primelor i generatoare. Uitati cum fac. for(int i=1;i<=W;i++)Cost[0][j]=INF; for(int i=1;i<=G;i++) { for(int j=1;j<=W;j++) { if( j-E[i]>=0 && sum[i-1]>=j-E[i] && Cost[i-1][j-E[i]]+C[i]<Cost[i-1][j] ) Cost[i][j]=Cost[i-1][j-E[i]]+C[i]; else Cost[i][j]=Cost[i-1][j]; } }
Am citit in topic ca au mai incercat si altii asa si nu le-a iesit si vreau sa stiu ce e gresit in judecata, ca sa inteleg mai bine dinamica. Imi puteti explica, va rog?
|
|
|
137
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 841 Bete2
|
: Ianuarie 04, 2010, 23:26:49
|
@miculprogramator De ce descrescator? Vad ca pornesti i de la 0, daca porneai de la N-1 sortai descrescator. Daca sortezi descrescator pentru v[ i ]+v[j] nu o sa gasesti nici un numar in intervalul (i,j) cara sa fie egal cu suma elementelor din capat. Incearca sa sortezi crescator, si pt i si j sa cauti in intervalul (j,N]. P.S : Este o mica greseala in enunt Acum si-a propus ss formeze grupuri distincte
|
|
|
144
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Pascal->C++
|
: Decembrie 31, 2009, 18:12:33
|
Iti sugerez sa treci la C++, pt ca limbajele moderne foarte folosite, gen Java, C#, au sintaxa identica cu C++, si asta ii inca un motiv petru care sa inveti C++.
|
|
|
149
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 956 Redu
|
: Decembrie 22, 2009, 17:34:21
|
for(int t=1;t<=N-1;t++) { for(int i=1;i<=N-t;i++) { int j=i+t; if(i+1==j)cmin[i][j]=c[s[i]][s[j]]; else { cmin[i][j]=PINF; if((j-i+1)%2==0) for(int k=i+1;k<=j;k++) { if( (k-i-1)%2==0 && (j-k)%2==0) if(cmin[i][j]>cmin[i+1][k-1]+cmin[k+1][j]+c[s[i]][s[k]])cmin[i][j]=cmin[i+1][k-1]+cmin[k+1][j]+c[s[i]][s[k]]; } } } }
Acum testez daca secventa de la (i+1,k-1) are lungime para si daca cea de la (k+1,j) are de asemenea lungime para si am modificat totul pe int si iau 70p cu incorect pe ultimele 3 teste. Este ceva ce imi scapa? Trebuie facuta vreo initializare anume? S-a rezolvat, am luat 100. Problema era ca aveam dimensiunea matricii fix cat imi trebuia, si erau situatii k+1>j si nu mai aveam loc De acuma o sa ma invat minte sa declar un pic mai mult decat am nevoie, sa nu declarati fix cat e limita ! [edit] modifica-ti measjele anterioare!
|
|
|
|