•DITzoneC
|
 |
« : Ianuarie 21, 2007, 23:51:30 » |
|
Aici puteţi discuta despre problema Diviz.
|
|
« Ultima modificare: Ianuarie 30, 2007, 20:48:33 de către Crestez Dan-Leonard »
|
Memorat
|
|
|
|
•gurney
Strain
Karma: -6
Deconectat
Mesaje: 10
|
 |
« Răspunde #1 : Februarie 07, 2007, 13:10:59 » |
|
N-am inteles prea bine evitarea numararii de mai multe ori a unui subsir identic. In solutia oficiala scrie "pentru a numara subsirurile distincte ( adica sa nu numaram subsiruri egale de doua ori ), daca suntem in starea (j, i, r) actualizam starea (j+1, first[cif][i+1], (r*10+cif) mod K) daca si numai daca intre pozitiile i+1 si first[cif][i+1]-1 in numarul N nu mai apare nici o cifra cif", dar daca first[cif][i+1] indica prima pozitie a cifrei cif in numar, atunci conditia de mai sus sigur e indeplinita. Iau numa 20p pt ca nu implementez bine chestia asta. 
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #2 : Februarie 07, 2007, 13:35:17 » |
|
Nu stiu exact ce vroia sa zica autorul articolului, nici eu nu am inteles cand am citit  Starile (j, i, r) inseamna numarul de subsiruri care se termina fix la pozitia i, au lungimea j si dau restul r. Trebuie sa initializezi pentru subsirurile de lungime 1 doar primele aparitii ale fiecarei cifre, pentru a nu le numara de mai multe ori. Astfel starile (1, first[cif][0], cif % K) sunt initializate cu 1 pentru cif de la 1 la 9 (subsirurile trebuie sa fie nenule si trebuie sa nu inceapa cu 0), iar de la o stare (j, i, r) actualizezi tot timpul starea (j + 1, first[cif][i + 1], (r * 10 + cif) % K). Aduni pe parcurs toate starile cu j cuprins intre A si B si cu r == 0 si ai solutia.
|
|
« Ultima modificare: Februarie 07, 2007, 13:40:00 de către Bogdan Tataroiu »
|
Memorat
|
|
|
|
•gurney
Strain
Karma: -6
Deconectat
Mesaje: 10
|
 |
« Răspunde #3 : Februarie 07, 2007, 14:09:13 » |
|
-Dap. Asa iese. Ar trebui modificat articolul cu pricina. Totusi iau un tle pe ultimu test. [working on it...]
|
|
|
Memorat
|
|
|
|
•domino
|
 |
« Răspunde #4 : Februarie 07, 2007, 22:58:27 » |
|
-Dap. Asa iese. Ar trebui modificat articolul cu pricina. Totusi iau un tle pe ultimu test. [working on it...]
E wiki, poate modifica oricine.
|
|
|
Memorat
|
|
|
|
•pocaitu
|
 |
« Răspunde #5 : Februarie 25, 2007, 21:52:16 » |
|
E ceva special pe testele 3,4,6,7,8,9,10 ?? Ca iau la toate incorect
|
|
|
Memorat
|
This is not a signature ! I repeat, this is not a signature !
|
|
|
•astronomy
|
 |
« Răspunde #6 : Februarie 25, 2007, 23:04:14 » |
|
Nu cred ca sunt speciale atatea teste, ai un bug ceva in program. Uite un test mai mic, poate te ajuta
|
|
|
Memorat
|
|
|
|
•pocaitu
|
 |
« Răspunde #7 : Februarie 25, 2007, 23:16:37 » |
|
da, imi da 60
|
|
|
Memorat
|
This is not a signature ! I repeat, this is not a signature !
|
|
|
•astronomy
|
 |
« Răspunde #8 : Februarie 25, 2007, 23:19:49 » |
|
In cazul asta da-ti teste singur, fa un brute-force si compara rezultatele cu programul tau. Ar trebui sa gasesti repede ca la prea multe teste ai WA.
|
|
|
Memorat
|
|
|
|
|
•StarGold2
Strain
Karma: 11
Deconectat
Mesaje: 46
|
 |
« Răspunde #10 : Decembrie 13, 2015, 01:14:02 » |
|
Stiu ca nu s-a mai postat de mult timp la problema aceasta, dar nu cumva limita de timp este cam mica? Adica initial era mai mare de 0.2 secunde, iar acum sunt foarte multe surse (printre care si a mea) care primesc 90 pct cu tle pe ultimul test. Daca se poate sa se mareasca limita cu 0.05 secunde ar fi nemaipomenit 
|
|
|
Memorat
|
|
|
|
•freak93
|
 |
« Răspunde #11 : Decembrie 16, 2015, 00:26:30 » |
|
Da, am marit cu 0.05 ca sa pastram regula cu limite de timp de 2 ori cat sursa oficiala. Am reevaluat toate surseled in 2013 incoace.
|
|
|
Memorat
|
|
|
|
|