杭电(hdu)1016 Prime Ring Problem
来源:互联网 发布:淘宝如何发放优惠券 编辑:程序博客网 时间:2024/05/17 06:40
Prime Ring Problem
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 34447 Accepted Submission(s): 15240
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 <iostream>#include <string>#include <cstdio>#include <cstring>using namespace std;int a[21];int v[21];int count=0;int n;int findprime(int y){ int flag=0; for(int i=2;i<=y/2;i++) { if(y%i==0) { flag=1; break; } } if(flag==0)return 1; else return 0;}void dfs(int x){ if(x==n&&findprime(a[x]+a[1])&&findprime(a[x]+a[x-1])) { cout<<a[1]; for(int i=2;i<=n;i++) { cout<<" "<<a[i]; } cout<<endl; } for(int i=2;i<=n;i++) { if(v[i]==0&&findprime(i+a[x])) { v[i]=1; a[x+1]=i; dfs(x+1); v[i]=0; } }}int main(){ while(cin>>n) { count++; memset(v,0,sizeof(v)); a[1]=1; v[1]=1; cout<<"Case "<<count<<":"<<endl; dfs(1); cout<<endl; } return 0;}
0 0
- 杭电 HDU 1016 Prime Ring Problem
- Prime Ring Problem HDU 杭电1016
- hdu 杭电 1016 Prime Ring Problem
- 杭电(hdu)1016 Prime Ring Problem
- 杭电 HDU ACM 1016 Prime Ring Problem
- 杭电1016-Prime Ring Problem
- 杭电 Prime Ring Problem 1016 DFS
- 杭电 1016 Prime Ring Problem
- 杭电OJ 1016:Prime Ring Problem
- 杭电 1016 Prime Ring Problem
- 杭电1016Prime Ring Problem
- 杭电 1016 Prime Ring Problem
- 杭电 1016 Prime Ring Problem【DFS】
- 杭电1016 Prime Ring Problem
- 杭电OJ 1016 Prime Ring Problem
- 杭电 oj 1016 Prime Ring Problem
- 杭电1016 Prime Ring Problem
- Prime Ring Problem(杭电1016)(DFS)
- jsp页面显示登入时间
- 1 LaTex入门--符号和结构 (上)
- ip地址的介绍
- 关于View的ScrollTo, getScrollX 和 getScrollY
- 固定功能shader,表面shader,顶点片段shader 的输入输出元素集总结
- 杭电(hdu)1016 Prime Ring Problem
- github项目工具类
- POJ-3255次短路
- base64的图片编码转为图片
- 如何用Cocos2d-JS制作一个《你是我的小羊驼》游戏
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- systemverilog中阻塞和非阻塞事件以及同步
- Linux cp 复制文件或复制文件夹
- cocos2dx源码之 引用计数及自动释放