Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Backtacking - Permutari : August 22, 2013, 12:34:31
Cu intarziere, dar iti multumesc pentru ajutor!
2  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Backtacking - Permutari : August 08, 2013, 22:48:55
Problema e luata dintr-o carte si pusa aici. Daca va bagati putin ochii in ea, o sa descoperiti ca e usor de citit. Cosmin, multumesc de materiale, o sa ma uit pe ele sa vad ce si cum. Si inca consider ca daca mi-ar explica cineva ce am cerut, as intelege. Daca ar putea sa-si faca cineva timp sa se uite putin pe cod as fi recunoscator.
3  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Backtacking - Permutari : August 06, 2013, 14:48:15
nu stie nimeni:))
4  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Backtacking - Permutari : August 05, 2013, 11:59:37
Nu stie nimeni?
5  infoarena - concursuri, probleme, evaluator, articole / Informatica / Backtacking - Permutari : August 03, 2013, 19:53:35
Salut, am si eu o problema si as vrea daca se poate sa mi-o explice cineva.

As vrea sa imi explice cineva cum se trece prin fiecare pas din problema.

De exemplu, pentru n=3. Ce se intampla in cod, cum functioneaza? cum circula 3-ul asta prin problema.

Cod:
#include<iostream>
using namespace std;

const MAX=20;
int n,v[MAX];

int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);

int valid(int k)

{
int i;
for(i=1; i<k; i++)
if(v[i]==v[k])
return 0;
return 1;
}

int solutie(int k)

{
if(k==n)
return 1;
return 0;
}

void afisare(int k)
{
int i;
for(i=1; i<=k; i++)
cout<<v[i]<<"";
cout<<endl;
}


void BK(int k)

{
int i;

for(i=1; i<=n; i++)

{
v[k]=i;
if(valid(k))

{
if(solutie(k))
afisare(k);

else

BK(k+1);
}
}
}

int main()

{
cout<<"n=";
cin>>n;

BK(1);
return 0;

}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines