华师一附中OI组

标题: 20151025讲义 [打印本页]

作者: diggersun    时间: 2015-10-25 13:52
标题: 20151025讲义
1、错排问题
  1. #include<iostream>
  2. using namespace std;
  3. int a[5],s=0;
  4. bool b[5];
  5. void mysearch(int i)
  6. {
  7.     int j,k;
  8.     if (i==5) {cout<<++s<<":";for (j=0;j<=4;j++) cout<<a[j];cout<<endl;}
  9.     else for (k=0;k<=4;k++)
  10.     if (b[k] && i!=k) {a[i]=k;b[k]=false;mysearch(i+1);b[k]=true;}
  11. }
  12. int main()
  13. {
  14.   for (int i=0;i<=4;i++) b[i]=true;
  15.   mysearch(0);
  16.   return 0;
  17. }
复制代码

作者: diggersun    时间: 2015-10-25 14:05
2、3个A 2个B 1个C 1个D 1个E全排列
  1. #include<iostream>
  2. using namespace std;
  3. const string ss="ABCDE";
  4. int a[8],s=0;
  5. int b[5];
  6. void mysearch(int i)
  7. {
  8.     int j,k;
  9.     if (i==8) {cout<<++s<<":";for (j=0;j<=7;j++) cout<<ss[a[j]];cout<<endl;}
  10.     else for (k=0;k<=5;k++)
  11.     if (b[k]>0) {a[i]=k;b[k]--;mysearch(i+1);b[k]++;}
  12. }
  13. int main()
  14. {
  15.   b[0]=3;b[1]=2;b[2]=b[3]=b[4]=1;
  16.   mysearch(0);
  17.   return 0;
  18. }
复制代码

作者: diggersun    时间: 2015-10-25 14:23
间隔排列
  1. #include<iostream>
  2. using namespace std;
  3. const int n=3;
  4. int a[2*n],s=0;
  5. bool b[n];
  6. void mysearch(int i)
  7. {
  8.     int j,k;
  9.     if (i==2*n)
  10.     {
  11.         cout<<++s<<":";
  12.         for (j=0; j<=2*n-1; j++) cout<<a[j];
  13.         cout<<endl;
  14.     }
  15.     else if (a[i]!=-1) mysearch(i+1);
  16.         else for (k=0; k<=n-1; k++)
  17.                 if (b[k] && (i+k+2<=2*n-1) && (a[i+k+2]==-1))
  18.                 {
  19.                     a[i]=a[i+k+2]=k;
  20.                     b[k]=false;
  21.                     mysearch(i+1);
  22.                     b[k]=true;
  23.                     a[i]=a[i+k+2]=-1;
  24.                 }
  25. }
  26.               int main()
  27. {
  28.     for (int i=0; i<=2*n-1; i++) a[i]=-1;
  29.     for (int i=0; i<=n-1; i++) b[i]=true;
  30.     mysearch(0);
  31.     return 0;
  32. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2