hdu-1716

来源:互联网 发布:linux 编译安装 lnmp 编辑:程序博客网 时间:2024/05/18 03:01

这题要看白书了,排列问题

参考别人代码

无责任贴代码

#include<iostream>#include<algorithm>#include<fstream>using namespace std;int flag,pos;void next(int n,int *p,int *a,int current){int i,j;if(current==n){if(a[0])//第一个为零不要{if(a[0]!=flag){if(!pos)cout<<endl;pos=0;flag=a[0];}elsecout<<" ";for(i=0;i<n;++i)cout<<a[i];}}else for(i=0;i<n;++i){if(!i || p[i]!=p[i-1]){int c1=0,c2=0;for(j=0;j<current;++j) if(a[j]==p[i]) c1++;for(j=0;j<n;++j) if(p[j]==p[i]) c2++;if(c1<c2){a[current]=p[i];next(n,p,a,current+1);}}}}int main(){int a[4];int p[4];int i=0;fstream cin("d:\\test.txt");while(1){cin>>p[0]>>p[1]>>p[2]>>p[3];if(p[0]==0 && p[1]==0 && p[2]==0 && p[3]==0)break;if(i)cout<<endl;i=1;        flag=-1;          pos=1;          sort(p,p+4);         next(4,p,a,0);  cout<<endl;     }      return 0;  }  

  

原创粉丝点击