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

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« : Decembrie 20, 2009, 14:49:47 »

Aici puteti discuta despre problema Redu.
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #1 : Decembrie 22, 2009, 17:34:21 »

Cod:
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  Smile De acuma o sa ma invat minte sa declar un pic mai mult decat am nevoie, sa nu declarati fix cat e limita ! Ok

[edit] modifica-ti measjele anterioare!
« Ultima modificare: Decembrie 25, 2009, 14:17:29 de către Sima Cotizo » Memorat
ParaipaN
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #2 : Septembrie 16, 2012, 16:57:22 »

Incercai o solutie recursiva si iau 50p. Idei de imbunatatire?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #3 : Septembrie 16, 2012, 21:39:46 »

Incercai o solutie recursiva si iau 50p. Idei de imbunatatire?

Offtopic: Da, ai putea sa folosesti perfectul compus Tongue.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
ParaipaN
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #4 : Septembrie 17, 2012, 06:50:11 »

Ok, atunci, AM INCERCAT o solutie recursiva, si iau 50p. Alte idei de imbunatatire?
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #5 : Septembrie 17, 2012, 09:02:02 »

Problema nu e ca faci recursiv. Problema e ca sursa ta ajunga sa faca backtracking. Fa matricea de 26 pe 26 numai 0 si pune n cam 50 sa vezi cum merge la tine.
Ce faci tu in sursa ta se cheama memoizare si in general e un procedeu bun(se comporta mai bine ca solutile iterative de multe ori). Problema e ca valoarea pe care o folosesti ca sa iti dai seama ca nu ai calculat inca acea valoarea e 0 la tine. Si 0 poate fi un raspuns.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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