Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 091 Gard3  (Citit de 1811 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« : August 30, 2005, 22:50:12 »

Aici puteţi discuta despre problema Gard3.
Memorat
u-92
Vizitator
« Răspunde #1 : Decembrie 04, 2005, 22:06:43 »

cam ce complexitate se asteapta la problema asta? eu am rezolvat-o in n^4 (fara numere mari) si am folosit baza 10^9.. se poate mai bine de atat? (stiu ca solutia oficiala tot n^4 e)

later edit: nevermind, e n^4 numai ca trebuia sa ma 'zgarcesc' putin la memorie ca sa intre in timp  Mr. Green
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #2 : August 31, 2007, 11:47:58 »

Daca la functia de inmultire a doua numere mari, modific asa:

Cod:
void mul(int A[], int B[])
{
int i, j, tr, C[NR_CIFRE] = {0};

for (i = 1; i <= A[0]; ++ i) {
for (tr = 0, j = 1; (j <= B[0]) || (tr); ++ j, tr /= BASE)
C[i+j-1] = (tr += C[i+j-1] + A[i] * B[j]) % BASE;
if (C[0] < i+j-2)
C[0] = i+j-2;
}
memcpy(A, C, sizeof(int) * (C[0] + 1));
}

Sa copiez exact numarul de cifre al rezultatului, am Killed by signal 11(SIGSEGV). Cu memcpy(A, C, sizeof(C)), merge. Ce poate sa fie ?
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #3 : Octombrie 24, 2013, 20:03:20 »

Mi se pare putin cam stransa limita de timp. 
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines