HDU 1016.Prime Ring Problem【DFS(递归)】【素数打表】【8月17】
来源:互联网 发布:太平洋软件官方下载 编辑:程序博客网 时间:2024/05/21 22:39
Prime Ring Problem
Problem Description
A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.
Note: the number of first circle should always be 1.
Note: the number of first circle should always be 1.
Input
n (0 < n < 20).
Output
The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements. Print solutions in lexicographical order.
You are to write a program that completes above process.
Print a blank line after each case.
You are to write a program that completes above process.
Print a blank line after each case.
Sample Input
68
Sample Output
Case 1:1 4 3 2 5 61 6 5 2 3 4Case 2:1 2 3 8 5 6 7 41 2 5 8 3 4 7 61 4 7 6 5 8 3 21 6 7 4 3 8 5 2
#include<cstdio>#include<cstring>int f[25],sh[45]={0},l[25],n,kase=0;//f[i]记录i是否已用,l[i]记录合法的环void DFS(int num,int sol){//num是前一个数字,sol是位置 if(sol==n&&!sh[num+1]){//1就是那个起始数字 for(int i=0;i<n;i++){ if(i!=0) printf(" ");//注意输出格式 printf("%d",l[i]); } printf("\n"); } for(int i=1;i<=n;i++) if(!f[i]&&!sh[num+i]){ f[i]=1;//标记已用 l[sol]=i; DFS(i,sol+1); f[i]=0;//回溯 }}int main(){ sh[1]=1; for(int i=2;i<22;i++)//筛选法打表,素数用0标记 for(int j=i+i;j<45;j+=i) sh[j]=1;//非素数用1标记 while(scanf("%d",&n)!=EOF){ printf("Case %d:\n",++kase); memset(f,0,sizeof(f)); memset(l,0,sizeof(l)); l[0]=1;//起始位置是1 f[1]=1;//1用过了 DFS(1,1); printf("\n"); } return 0;}
0 0
- HDU 1016.Prime Ring Problem【DFS(递归)】【素数打表】【8月17】
- HDU Prime Ring Problem (DFS+素数打表)
- hdu1016 Prime Ring Problem dfs 素数打表
- 杭电-1016Prime Ring Problem(素数打表+DFS)
- HDU-1016 Prime Ring Problem【素数环 打表+深搜】
- HDU.1016 Prime Ring Problem【DFS递归+素数打表法】(3.12)
- HDU 1016 Prime Ring Problem (素数环)(DFS)
- hdu 1016 Prime Ring problem(dfs 素数环)
- HDU 1016 Prime Ring Problem(DFS 素数环问题)
- hdu-1016Prime Ring Problem(素数环 dfs)
- hdu 1016 Prime Ring Problem(dfs,素数环)
- HDU (dfs)1016 Prime Ring Problem素数环
- UVa524-Prime Ring Problem(DFS+素数)
- DFS:Prime Ring Problem(素数环)
- hdu 1016 Prime Ring Problem(DFS)
- hdu 1016 Prime Ring Problem(DFS)
- HDU 1016 Prime Ring Problem (DFS)
- HDU 1016Prime Ring Problem(dfs)
- jquery基础精华04(01)
- Java实现邮件发送
- php随机数生成函数示例
- Wmic 实例应用代码分享
- 对于startActivity的使用改进
- HDU 1016.Prime Ring Problem【DFS(递归)】【素数打表】【8月17】
- Qt中QSortFilterProxyModel关于多列排序的实现
- jquery基础精华05
- Atlassian 产品数据库选择/修改
- 安卓数据库
- 看 java 报错
- codeforces 14D Two Paths dfs
- QString转换为 QByteArray
- 同步和异步区别