Afişează mesaje
|
|
Pagini: [1]
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1037 Produs
|
: Mai 25, 2010, 22:35:44
|
Multumesc pentru raspuns. Am reusit sa logaritmez numarul ala mare dar nu obtin decat 80 de puncte, chiar daca logaritmez intr-o baza mai mare (100000 = 10e5).  Dau mai jos un fragment din codul meu: #define EPS 1e-6 #define LN10e5 11.512925464970228420089957273422
int Sgn(double logA, double logN) { if(logA - logN < -EPS) return -1; else if(logA - logN > EPS) return 1; return 0; } unsigned int st=2, dr=1; double logA = 0.0; bool ok = false; while(!ok) { switch(Sgn(logA, logN)) { case 0: ok = true; break; case -1: dr++; logA += log((double)dr) / LN10e5; break; case 1: logA -= log((double)st) / LN10e5; st++; break; default: break; } }
|
|
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 795 G
|
: August 28, 2009, 23:29:55
|
|
Nu am inteles foarte bine problema. De exemplu daca G=2, jucatorul "1" imparte gramada in doua gramezi fiecare din ele avand G=1? Iar daca G=3 jucatorul "1" ia o piatra si imparte gramada in doua gramezi fiecare avand G=1. Daca G=4, am inteles ca ia o piatra, deci raman 3, se formeaza doua gramezi una cu o piatra si una cu 2 pietre, jucatorul 2 poate alege sa opereze fie in gramada cu 1 piatra fie in gramada cu 2 pietre ... Poate sa imi dea cineva o ideea de rezolvare?
|
|
|
|
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 487 Imagine
|
: August 14, 2007, 21:43:41
|
In arborele pe care vreau sa il construiesc un nod are un pointer la right brother (daca nodul e nod intermediar, atunci right brother e chiar primul fiu) si 8 biti impachetati cate doi pentru fiecare dintre fii pentru a desemna daca fii sunt frunze si daca sunt frunze retinand culoarea. In descrierea solutiei scrie ca arborele se construieste cu ajutorul unei stive. Poate sa imi dea cineva o idee, cum s-ar acest arbore pornind de la expresia imaginii, cu ajutorul unei stive? Ca nu am reusit 
|
|
|
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 487 Imagine
|
: Iulie 30, 2007, 15:40:42
|
Pentru rezolvarea acestei probleme am folosit QuadTree pentru reprezentarea binara a imaginii, si totusi iau numai 50 de puncte deoarece imi da memory exced la testele 9 si 10 si time limit exced la testele 6, 7 si 8  . Eu aloc dinamic cu new si delete cele doua arrayuri pentru reprezentarea codificata si respectiv codul operatiilor, cate 10000000 caractere pentru fiecare. Pentru operatii am folosit functii recursive pe quad tree. Poate voi primi un sfat util aici pe forum, in incercarea mea de a obtine maximul de puncte la aceasta problema.
|
|
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 313 Smen
|
: Februarie 17, 2007, 22:52:04
|
ma poate ajuta cineva cu vreun sfat la aceasta problema? Eu m-am gandit la ceva dar nu am primit nici un punct. Faceam operatii asupra elementelor sirului, verificam daca sunt duplicate in fiecare subsir considerat, retineam numarul minim de operatii si prima pozitie din sir a subsirului cerut de problema...Dar nu a mers ideea asta. totusi simt ca am fost pe aproape... 
|
|
|
|
|
11
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Raspuns: 312 Chernel
|
: Ianuarie 28, 2007, 16:02:58
|
ma gandeam ca asa e...ca nu vor fi facute publice. Nu ma voi lasa pana nu voi scoate peste 50 de puncte macar. Nu am crezut la inceput ca va fi atat de dificila rezolvarea acestei probleme. Daca imi scrie acolo Incorect in dreptul evaluarii inseamna ca am facut o eroare de algoritm in cod, nu?  Si totusi mie imi este clar ca e vorba de calcularea combinari de N-1 luate cate k, unde k ia valori de la 0 la N-1. 
|
|
|
|
|
12
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Raspuns: 312 Chernel
|
: Ianuarie 28, 2007, 15:33:06
|
|
Oare sunt disponibile fisierele de test pentru aceasta problema? Ma chinui de mult timp sa o rezolv si nu stiu de ce nu iese.. Initial m-am "prins" ca coeficientii din forma numarului final sunt de fapt combinari de N-1 luate cate k, unde k=0,..., N-1. Conditia gandita de mine ar fi sa determin care din acesti coeficienti dau restul 0 prin impartire la M. M-am impotmolit in combinari de n luate cate k care ia si mult timp, da si stack overflow daca e prin programare dinamica pentru N foarte mare... si intr-o solutie in care folosesc doua tablouri pentru stocarea valorilor intermediare ale coeficientilor aici am reusit sa scap de stack overflow si am adus timpul la valori mai bune dar obtin doua rezultate incorecte la doua teste. In ambele variante pentru N mare se obtin coeficienti foarte mari care depasesc chiar maximul pe 64 de biti, si aici trebuie implementate operatiile cu numere mari probabil... Poate cineva sa ma ajute la aceasta problema? Sunt dispus sa arat si codul meu care da asemenea probleme.
|
|
|
|
|