HDU 1016 Prime Ring Problem(dfs)
2016-01-29 20:41
423 查看
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 37703 Accepted Submission(s): 16659 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. 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. Sample Input 6 8 Sample Output Case 1: 1 4 3 2 5 6 1 6 5 2 3 4 Case 2: 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1 6 7 4 3 8 5 2 Source Asia 1996, Shanghai (Mainland China) |
#include <iostream> #include <cstdio> #include <cstring> using namespace std; bool vis[20]; int a[20]; int n; bool prime(int m) { if(m==1) return false; if(m==2) return true; for(int i=2;i*i<=m;i++) if(m%i==0) return false; return true; } void dfs(int m) { if(m==n&&prime(a[m-1]+a[0])){ for(int i=0;i<m;i++){ if(i) cout<<" "; cout<<a[i]; } cout<<endl; } else{ for(int i=2;i<=n;i++){ if(!vis[i]){ if(prime(i+a[m-1])){ //是否和相邻的加起来是素数 vis[i]=1;//标记了 a[m++]=i;//放进数组 dfs(m); //递归调用 vis[i]=0; //退去标记 m--; } } } } } int main() { int j=0; while(cin>>n){ cout<<"Case "<<++j<<":"<<endl; memset(vis,0,sizeof(vis)); a[0]=1; dfs(1); cout<<endl; } return 0; }
相关文章推荐
- 各种排序算法的稳定性和时间复杂度小结
- Java语言实现简单FTP软件
- 3dmath复习随笔
- C++ 11 右值引用以及std::move
- Perl Unicode全攻略
- 例题6-12 UVA Oil Deposits油田
- JSP自定义标签笔记
- Android 一行显示全部内容的TextView--SingleLineTextView
- (转)UEFI 启动:实际工作原理
- HDU 3085 —— Nightmare Ⅱ 双向BFS
- HDU 1501 Zipper(dfs)
- Periscope点赞效果,红心乱飞
- 关于内存寻址空间
- ED/EP系列7《指令速查表》
- 使用react-native做一个简单的应用-02项目搭建与运行
- Linux 按键定时器去抖
- Linux Bash 的基本功能 管道符
- hdu 1098
- MySQL数据类型
- x265-1.8版本-common/contexts.h注释