HDU 1016 Prime Ring Problem
来源:互联网 发布:qt5 socket编程 编辑:程序博客网 时间:2024/05/16 19:02
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>#define N 25bool isPrime[N];int ring[N];int pr;bool visit[N];int n, count;void setPrime(){memset(isPrime, true, sizeof(isPrime));isPrime[0] = isPrime[1] = false;for (int i = 2; i < N; i++) if (isPrime[i])for (int j = 2 * i; j < N; j += i)isPrime[j] = false;}void print(){printf("1");for (int i = 2; i <= n; i++) printf(" %d", ring[i]);printf("\n");}void dfs(int i){if (i > n){if (isPrime[ring[n] + 1]) print();return;}for (int j = 2; j <= n; j++)if (!visit[j] && isPrime[ring[i - 1] + j]){ring[++pr] = j;visit[j] = true;dfs(i + 1);pr--;visit[j] = false;}}int main(){setPrime();count = 0;while (~scanf("%d", &n)){printf("Case %d:\n", ++count);memset(visit, false, sizeof(visit));ring[1] = 1; pr = 1;dfs(2);printf("\n");}return 0;}
0 0
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- HDU-1016 prime ring problem
- hdu 1016Prime Ring Problem
- hdu 1016 Prime Ring Problem
- HDU-1016 Prime Ring Problem
- HDU-1016-Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- Hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- Hdu 1016 - Prime Ring Problem
- HDU 1016 Prime Ring Problem
- MZ test17# NOIP模拟题 # T2 第2题 最优时间表(sche.pas/cpp) [key.DP]
- 简单的从服务器获取数据以及反序列化
- poj 1127 Jack Straws(两线相交,并查集)
- ios 生成证书
- c和c++接口互调
- HDU 1016 Prime Ring Problem
- 313. Super Ugly Number
- JQuery对JSON数组的操作
- c源文件到执行文件的编译过程
- matlab2014a代码示例 逻辑运算符不等于
- 恶意代码防范-熟悉给定工具
- 用Keras搭建, 编译和训练神经网络时,常见问题
- PTA-电话聊天狂人(分离链接法)
- Latex公式内行间距,字体大小控制