Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Knapsack help  (Citit de 1328 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« : Martie 20, 2010, 23:30:42 »

Imi poate arata si mie de exemplu daca am N valori si vreau sa vad daca X se poate obtine adunand acele valori, cu algoritmul knapsack? Multumesc anticipat .
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #1 : Martie 20, 2010, 23:47:06 »

Sunt 2 cazuri : cand poti aduna de mai multe ori aceeasi valoare si cand poti aduna fiecare valoare o singura data.

Care te intereseaza ?
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #2 : Martie 20, 2010, 23:57:02 »

Aici e problema .
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #3 : Martie 21, 2010, 00:19:05 »

Citeste articolul cu solutii. O sa vezi ca nu e nevoie de Knapsack.

http://infoarena.ro/preoni-2008/runda-1/solutii#economie
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #4 : Martie 21, 2010, 00:37:30 »

Am citit, dar nu stiu sigur, adica sa zicem pentru exemplul asta :
Cod:
3
2
3
5
Dau de 2, si ce fac, adica il bag intr-un vector si ce marchez ? Asta nu inteleg :-"
Memorat
dornescuvlad
Nu mai tace
*****

Karma: -138
Deconectat Deconectat

Mesaje: 234



Vezi Profilul
« Răspunde #5 : Martie 27, 2010, 09:02:26 »

Din - vector in care tii 1, daca poti forma suma i si 0 daca n-o poti forma.

Cod:
Din[0] = 1 //e clar
for(i=1;i<=n;i++)
    if(Din[V[i]]==0)
       {
            sol[++nrSol]=V[i]; //bagi in solutie daca nu se poate forma suma V[i]
            for(j=0;j<=V[n];j++) //cauti crescator sumele pe care le poti forma cu V[i]
            //pentru ca poti folosi o moneda de mai multe ori
                    if(Din[j] && j+V[i]<=V[n]) //pana nu depasesti valoarea maxima a monedelor
                                 Din[j+V[i]]=1; //le marchezi
       }
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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