HDU 1016 Prime Ring Problem

来源:互联网 发布:供应商管理数据库 编辑:程序博客网 时间:2024/05/16 06:50
题目:

http://acm.hdu.edu.cn/showproblem.php?pid=1016

题解:

深搜,看了题解敲的,理解还不是很透彻,先存代码,题解后补。

代码:

#include<cstdio>#include<cstring>#include<math.h>int n;int A[25];bool visit[25];bool prime(int x){int flag=0;for(int i=2;i<=sqrt((double)x);i++){if(x%i==0) {flag=1;break;}}return !flag;}void dfs(int cur){int i;if(cur==n&&prime(A[0]+A[n-1])){printf("1");for(i=1;i<=n-1;i++)printf(" %d",A[i]);printf("\n");}else {for(i=2;i<=n;i++){if(!visit[i]&&prime(i+A[cur-1])){visit[i]=1;A[cur]=i;dfs(cur+1);visit[i]=0;}}}}int  main(){int t=1;A[0]=1;while(~scanf("%d",&n)){memset(visit,0,sizeof(visit));printf("Case %d:\n",t++);dfs(1);printf("\n");}return 0;}


0 0
原创粉丝点击