Advertisement
icatalin

probleme flori backt

Oct 27th, 2015
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.97 KB | None | 0 0
  1. regine1
  2.  
  3. #include <iostream>
  4. #include <cmath>
  5. using namespace std;
  6.  
  7. int v[15],n,ok;
  8.  
  9. void citire()
  10. {
  11.     cin>>n;
  12. }
  13.  
  14. bool valid(int p)
  15. {
  16.     for(int i=1;i<p;i++)
  17.     {
  18.         if(v[i]==v[p] || abs(v[i]-v[p])==p-i)
  19.             return false;
  20.     }
  21.     return true;
  22. }
  23.  
  24. void umplere()
  25. {
  26.     for(int i=1;i<=n;i++){
  27.         for(int j=1;j<=n;j++)
  28.         if(j==v[i])
  29.         cout<<"* ";
  30.         else
  31.             cout<<"_ ";
  32.             cout<<endl;}
  33. }
  34.  
  35. void backtr(int p)
  36. {
  37.     if(ok==0)
  38.     for(int i=n;i>=1;i--)
  39.     {
  40.         v[p]=i;
  41.         if(valid(p))
  42.         {
  43.             if(p==n)
  44.             {
  45.                 umplere();
  46.                 ok=1;
  47.             }
  48.             else
  49.                 backtr(p+1);
  50.         }
  51.     }
  52. }
  53.  
  54. int main()
  55. {
  56.     citire();
  57.     backtr(1);
  58.     return 0;
  59. }
  60.  
  61.  
  62. cifregen3
  63.  
  64. #include <iostream>
  65. using namespace std;
  66.  
  67. int st[10],n,m;
  68. void init()
  69. {
  70.     cin>>n>>m;
  71. }
  72.  
  73. bool valid(int p)
  74. {
  75.     if(p==n && st[p]!=st[1])
  76.     return false;
  77.     if(p==1 & st[p]==0)
  78.         return false;
  79.     return true;
  80. }
  81. bool solutie(int p)
  82. {
  83.     if(p==n)
  84.         if(st[p]==st[1])
  85.     return true;
  86.     return false;
  87. }
  88. void tipar(int p)
  89. {
  90.     for(int i=1;i<=p;i++)
  91.     cout<<st[i];
  92.     cout<<'\n';
  93. }
  94. void backtr(int p)
  95. {
  96.     int i;
  97.     for(i=0;i<m;i++)
  98.     {
  99.         st[p]=i;
  100.         if(valid(p))
  101.             {if(solutie(p))
  102.                 tipar(p);
  103.                 else
  104.                 backtr(p+1);
  105.             }
  106.         }
  107. }
  108. int main()
  109. {
  110.    init();
  111.     backtr(1);
  112.     return 0;
  113. }
  114.  
  115. cifregen4
  116.  
  117. #include <iostream>
  118. #include <cmath>
  119. using namespace std;
  120.  
  121. int st[10],n,m;
  122. void init()
  123. {
  124.     cin>>n>>m;
  125. }
  126.  
  127. bool valid(int p)
  128. {
  129.     if(p==1 && st[p]==0)
  130.     return false;
  131.     if(p>1)
  132.     if(abs(st[p]-st[p-1])<2)
  133.     return false;
  134.     return true;
  135. }
  136. bool solutie(int p)
  137. {
  138.     if(p==n)
  139.     return true;
  140.     return false;
  141. }
  142. void tipar(int p)
  143. {
  144.     for(int i=1;i<=p;i++)
  145.     cout<<st[i];
  146.     cout<<'\n';
  147. }
  148. void backtr(int p)
  149. {
  150.     int i;
  151.     for(i=0;i<m;i++)
  152.     {
  153.         st[p]=i;
  154.         if(valid(p))
  155.             {if(solutie(p))
  156.                 tipar(p);
  157.                 else
  158.                 backtr(p+1);
  159.             }
  160.         }
  161. }
  162. int main()
  163. {
  164.    init();
  165.     backtr(1);
  166.     return 0;
  167. }
  168.  
  169. submultimi1
  170.  
  171. #include <fstream>
  172. using namespace std;
  173. ifstream fin("submultimi1.in");
  174. ofstream fout("submultimi1.out");
  175. int st[10],n;
  176. void init()
  177. {
  178.     fin>>n;
  179. }
  180. bool valid(int p)
  181. {
  182.     for(int i=1;i<p;i++)
  183.         if(st[p]-st[i]<=1)
  184.         return false;
  185.     return true;
  186. }
  187. bool solutie(int p)
  188. {
  189.     return true;
  190. }
  191. void tipar(int p)
  192. {
  193.     for(int i=1;i<=p;i++)
  194.     fout<<st[i]<<" ";
  195.     fout<<'\n';
  196. }
  197. void backtr(int p)
  198. {
  199.     int i;
  200.     for(i=st[p-1]+1;i<=n;i++)
  201.     {
  202.         st[p]=i;
  203.         if(valid(p))
  204.             {
  205.                     tipar(p);
  206.                      backtr(p+1);
  207.             }
  208.     }
  209. }
  210. int main()
  211. {
  212.    init();
  213.     backtr(1);
  214.     return 0;
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement