problema colorarii hartilor

Problema colorarii hartilor Fiind data o harta cu n tari, se cer toate solutiile de colorare a hartii, utilizand cel mult patru culori, astfel incat doua tari ce au frontiera comuna sa fie colorate diferit. Este demonstrat faptul ca sunt suficiente numai patru culori pentru ca orice harta sa poata fi colorata.   #include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k; … Read more

problema damelor

Problema damelor Considerandu-se o tabla de sah de dimansiune nXn, sa se determine toate modalitatile de amplasare a n regine pe tabla de sah astfel incat sa nu se atace doua cate doua(doua regine se ataca daca se afla pe aceeasi linie, coloana, sau diagonala).   //problema damelor#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k; void init(){st[k]=0;} int succesor(){if (st[k]<n) {st[k]++; … Read more

SECVENTE LITERE

Scrieti un program care afiseaza pe ecran toate secventele de n litere (n numar natural par citit de la tastatura) din multimea {A,R,G,V), secvente care se pot construi respectand urmatoarele reguli: nu plasam doua litere identice una langa alta;trebuie sa utilizam exact n/2 litere R #include<iostream.h> #include<conio.h> #include<math.h> int st[20],n,k;char a[5]; void init() {st[k]=0;} int … Read more

diferenta>modul

Se citesc de la tastatura doua nr naturale n si v.Scrieti un program care afiseaza toate nr de la 1 la n in toate modurile posibile, astfel incat intre oricare doua numere afisate in pozitii invecinate, diferenta in modul sa fie mai mare decat valoarea data v. Exemplu: n=4,v=1 solutiile vor fi 3 1 4 … Read more

JUCARII MOS CRACIUN

Copiii asteapta jucarii de la Mos Craciun. Scrieti un program care determina toate modurile diferite in care ei pot sa fie asezati in lista, astfel incat sa fie vizitati toti copiii si vizitele sa se faca in orinea descrescatoare a numarului de jucarii dorite de fiecare.Se citesc de la tastatura: n, numarul de copii, apoi … Read more

COMBINARI ITERATIV

#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; void init(){ if(k>1) st[k]=st[k-1]; else st[k]=0; } int succesor(){if (st[k]<n-p+k) {st[k]++; return 1; }else return 0;} int valid(){return 1;} int sol(){return (k==p);} void tipar(){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(){int as;k=1;init();while(k>0){do {} while ((as=succesor()) && !valid());if (as) if (sol()) tipar(); else {k++;init();}else k–;}} void main(){cout<<“n=”;cin>>n;cout<<“p=”;cin>>p;bkt();getch();} {joscommentenable}    

ARANJAMENTE ITERATIV

#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; void init(){st[k]=0;} int succesor(){if (st[k]<n) {st[k]++; return 1; }else return 0;} int valid(){for(int i=1;i<k;i++) if(st[i]==st[k]) return 0;return 1;} int sol(){return (k==p);} void tipar(){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(){int as;k=1;init();while(k>0){do {} while ((as=succesor()) && !valid());if (as) if (sol()) tipar(); else {k++;init();}else k–;}} void main(){cout<<“n=”;cin>>n;cout<<“p=”;cin>>p;bkt();getch();} {joscommentenable}  

fotbal

//un patron are o suma s;ce jucatori poate lua#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,p,s,a[20]; int valid(int p){int suma=0;for(int i=1;i<p;i++) if(st[i]>=st[p]) return 0;for(i=1;i<=p;i++) suma=suma+a[st[i]];if(suma>s) return 0;return 1;} int sol(int p){int suma=0;for(int i=1;i<=p;i++) suma=suma+a[st[i]];return (suma==s);} void tipar(int p){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(int p){int val;for(val=1;val<=n;val++){st[p]=val;if(valid(p)) if(sol(p))tipar(p);else bkt(p+1);}} void main(){cout<<“n=”;cin>>n;cout<<“s=”;cin>>s;for(int i=1;i<=n;i++){cout<<“a[“<<i<<“]=”;cin>>a[i];} bkt(1);} {joscommentenable}

cifre distincte pare alaturate

Backtracking cifre distincte pare alaturate Folosind metoda backtracking, sa se afiseze toate nr din n cifre distincte a.i. sa nu fie 2 cifre pare alaturate #include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; int valid(int p){if(p==1 && st[p]==0) return 0; for(int i=1;i<p;i++) if(st[i]==st[p]) return 0; if(p>1 && st[p]%2==0 && st[p-1]%2==0) return 0;return 1;} int sol(int p){return (p==n);} void tipar(int p){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} … Read more

cifre pare alaturate

Se citesc n cifre.Sa se afiseze toate nr formate cu acestea astfel incat sa nu existe doua cifre pare alaturate. #include<iostream.h>#include<conio.h> int n,st[10],k,p;int v[10]; int valid(int p){if((p==1) && v[st[p]]==0) return 0;if((p>1) && (v[st[p]]%2==0 && v[st[p-1]]%2==0)) return 0; return 1;} int sol(int p){return (n==p);} void tipar(int p){for(int i=1;i<=p;i++)cout<<v[st[i]];cout<<endl;} void bkt(int p){ for(int val=1;val<=n;val++){st[p]=val;if (valid(p)) if (sol(p)) … Read more