hdu 1016 Prime Ring Problem
2011-10-26 12:49
316 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1016
就是简单的DFS加回溯。。
没想到这也不会超时。。。
对于素数用筛选法打表处理;
下面是AC代码:
就是简单的DFS加回溯。。
没想到这也不会超时。。。
对于素数用筛选法打表处理;
下面是AC代码:
#include<iostream> #include<cstring> #include<cmath> using namespace std; int b[2000]; int a[22]; int mark[22]; void Init() { int i,j; for(i=1;i<40;i++) b[i]=1; for(i=2;i<40;i++) { for(j=2;j<40;j++) b[i*j]=0; } } void dfs(int n,int k) { int i; if(k>n) { for(i=1;i<n;i++) printf("%d ",a[i]); printf("%d\n",a ); } else { for(i=2;i<=n;i++) { a[k]=i; if(k==n&&!mark[i]&&b[a[k-1]+a[k]]&&b[a[k]+a[1]]) { mark[i]=1; dfs(n,k+1); mark[i]=0; } if(k!=n&&!mark[i]&&b[a[k]+a[k-1]]) { mark[i]=1; dfs(n,k+1); mark[i]=0; } } } } int main() { int n; int ca=1; Init(); while(cin>>n) { printf("Case %d:\n",ca++); a[1]=1; mark[1]=1; memset(mark,0,sizeof(mark)); dfs(n,2); printf("\n"); } return 0; }
相关文章推荐
- HDU - 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem(dfs,素数环)
- HDU 1016 Prime Ring Problem(深搜)
- HDU-1016 Prime Ring Problem (DFS)
- hdu 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem dfs
- hdu 1016 Prime Ring Problem(DFS)
- HDU-1016 prime ring problem
- HDU 1016(Prime Ring Problem)DFS
- prime ring problem(hdu 1016)
- hdu 1016 Prime Ring Problem(深度优先搜索)
- HDU 1016 深搜 Prime Ring Problem 素数环
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
- 【暴力搜索】[HDU 1016]Prime Ring Problem