HDOJ搜索专题之Prime Ring Problem
2012-05-16 19:25
363 查看
经典的DFS,素数环问题。
题目大意:将从1开始的前n个自然数排成一个圈,使得任意相邻的两个数的和是素数。给定n,按字典序打印结果。
View Code
题目大意:将从1开始的前n个自然数排成一个圈,使得任意相邻的两个数的和是素数。给定n,按字典序打印结果。
View Code
#include <stdio.h> #include <string.h> #define N 20 int a ,n,cnt; char is_p[40],vis ; void init() { memset(is_p,0,sizeof(is_p)); is_p[2]=1; is_p[3]=1; is_p[5]=1; is_p[7]=1; is_p[11]=1; is_p[13]=1; is_p[17]=1; is_p[19]=1; is_p[23]=1; is_p[29]=1; is_p[31]=1; is_p[37]=1; memset(vis,0,sizeof(vis)); cnt=0; vis[1]=1; a[0]=1; } void print() { for(int i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } void dfs(int cnt) { if(cnt==n) { if(is_p[1+a[cnt-1]]) print(); return; } for(int i=2;i<=n;i++) { if(vis[i] || !is_p[i+a[cnt-1]]) continue; vis[i]=1; a[cnt]=i; dfs(cnt+1); vis[i]=0; } } int main() { int kase=0; while(~scanf("%d",&n)) { init(); printf("Case %d:\n",++kase); dfs(1); printf("\n"); } return 0; }
相关文章推荐
- 搜索专题(DFS)HDU 1016-Prime Ring Problem
- hdoj1016 Prime Ring Problem (深度搜索)
- SDAU 搜索专题 20 Prime Ring Problem
- HDOJ 1016 Prime Ring Problem 简单搜索
- HDOJ_ACM_Prime Ring Problem
- 【暴力搜索】[HDU 1016]Prime Ring Problem
- HDOJ Prime Ring Problem (深度优先搜索)
- HDOJ-【1016 Prime Ring Problem】
- HDOJ-1016 Prime Ring Problem
- 递归与回溯 HDOJ 2553 N皇后问题 1016 Prime Ring Problem
- HDOJ Prime Ring Problem (深度优先搜索)
- HDOJ 1016 HDU 1016 Prime Ring Problem ACM 1016 IN HDU
- hdoj-1016 Prime Ring Problem
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
- HDOJ 1016 Prime Ring Problem(dfs+回溯)
- 杭电1016Prime Ring Problem DFS 搜索
- hdoj1016,Prime Ring Problem
- HDOJ 1016 Prime Ring Problem
- hdoj 1016 Prime Ring Problem
- HDOJ 1016 Prime Ring Problem(素数环 - 深搜)