hdu 5339 Untitled(枚举 || DFS)
题目:#include#include#includeusing namespace std;const int INF=1e6+10;int b[21];int n,a,minm;bool cmp(int a,int b){ return a>b;}void dfs(int number,int dex,int sum){ if(number==0){ minm=min(minm,sum); return ; } if(dex==n-1)return ; dfs(number%b[dex+1],dex+1,sum+1); dfs(number,dex+1,sum);}int main(){ //freopen("cin.txt","r",stdin); int t; cin>>t; while(t--){ memset(b,0,sizeof(b)); scanf("%d%d",&n,&a); for(int i=0;in)minm=-1; printf("%d\n",minm); } return 0;}
递归很神奇的有木有,哈哈~~
来看二进制枚举:
#include #include#includeusing namespace std;const int INF=1e6+10;int b[21];int n,a;bool cmp(int a,int b){ return a>b;}int main(){ //freopen("cin.txt","r",stdin); int t; cin>>t; while(t--){ scanf("%d%d",&n,&a); int minm=INF; for(int i=0;ia)continue; dex=i; break; } for(int i=0;i<(1<<(n-dex));i++){ int temp=a,res=0; for(int j=0;j20?-1:minm); } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~