hdu 1016 dfs
2013-07-06 13:17
253 查看
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int n; bool vis[50]; int A[50]; bool isp[50]; bool is_prime(int k) { if(k==2) return true; for(int i=2;i<=sqrt(k);i++) { if(k%i==0) return false; } return true; } void dfs(int cur) { if(cur==n && isp[A[0]+A[n-1]]) { printf("%d",A[0]); for(int i=1;i<n;i++) printf(" %d",A[i]); printf("\n"); return ; } for(int i=2;i<=n;i++) { if(!vis[i] && isp[i+A[cur-1]]) { A[cur]=i; vis[i]=1; dfs(cur+1); vis[i]=0; } } } int main() { int cas=0; while(~scanf("%d",&n)) { printf("Case %d:\n",++cas); memset(A,0,sizeof(A)); memset(vis,0,sizeof(vis)); memset(isp,0,sizeof(isp)); for(int i=2;i<=n*2;i++) isp[i]=is_prime(i); A[0]=1; dfs(1); printf("\n"); } return 0; }
相关文章推荐
- 搜索专题(DFS)HDU 1016-Prime Ring Problem
- hdu 1016(dfs+dp)
- HDU 1016 Prime Ring Problem(DFS回溯+素数判断)
- HDU 1016 Prime Ring Problem(DFS)
- HDU 1016 DFS基础题
- 文章标题 HDU 1016 : Prime Ring Problem (DFS)
- hdu 1016 Prime Ring Problem(DFS)
- hdu 1016 Prime Ring Problem(DFS)
- HDU 1016 DFS
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
- hdu 1016 Prime Ring Problem(DFS)
- hdu 1016(dfs基础)
- [ACM] hdu 1016 Prime Ring Problem (DFS)
- HDU 1016(dfs)
- HDU 1016 Prime Ring Problem (DFS)
- 人生第一个深入理解的DFS题 HDU 1016
- HDU1016_Prime Ring Problem【DFS】
- hdu-1016 Prime Ring Problem(素数环) DFS解法
- hdu 1016 (dfs)
- 【HDU 1016】Prime Ring Problem(DFS)