Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1037 Produs : Mai 26, 2010, 21:45:44
Da, problema era la baza in care se tine numarul mare. Lua mult timp operatia de descompunere in factori primi a numarului mare, pentru ca foloseam baza 10.
Multumesc pentru ajutor. Dancing Yahoo!
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1037 Produs : Mai 26, 2010, 09:37:20
Multumesc pentru raspuns, dar se pare ca nu ajuta asa mult marirea bazei. Am logaritmat chiar si in baza 10^50 (am folosit log10 ca logaritm in baza 10 si am impartit la 50, conform formulei de schimbare a bazei pentru logaritm).

Ultimele 2 teste pica testul de timp.
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). Brick wall

Dau mai jos un fragment din codul meu:

Cod:

#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;
}
}
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1037 Produs : Mai 24, 2010, 15:20:59
Cum se poate logaritma un numar foarte mare?
Formula loga(b*c) = logab + logac nu ajuta.

Any help?
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 Brick wall d'oh!
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 Cry Brick wall. 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.
8  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 313 Smen : Februarie 17, 2007, 22:55:09
multumesc mult.
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... sad Brick wall
10  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Raspuns: 312 Chernel : Ianuarie 28, 2007, 17:29:03
Eu cred mai degrab ca C(n,k)=(n/k)*((n-1)/(k-1))*...*((n-k+2)/2)*((n-k+1)/1) imi poate fi mai de folos. Adica restul lui C(n,k) mod M == 0 <==>
unul din termenii produsului modulo M este 0.
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? Brick wall
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.  Think
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.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines