九度 Prime Ring Problem hdu 1016
来源:互联网 发布:数据自动统计分析方法 编辑:程序博客网 时间:2024/05/16 08:05
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1016
题目来源:http://ac.jobdu.com/problem.php?pid=1459
- 题目描述:
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.
- 输入:
n (1 < n < 17).
- 输出:
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.
- 样例输入:
68
- 样例输出:
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
- 提示:
用printf打印输出。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 50;int IsPrime[MAXN], visit[MAXN>>1];void PreCheckPrime(){ int i, j; for(i = 0; i < MAXN; ++i) IsPrime[i] = 1; IsPrime[0] = IsPrime[1] = 0; for(i = 2; i < MAXN; ++i) { if(IsPrime[i]) { for(j = i+i; j < MAXN; j += i) IsPrime[j] = 0; } }}void Print_Prime_Ring(int* arr, int n){ for(int i = 1; i < n; ++i) printf("%d ", arr[i]); printf("%d\n", arr[n]);}void FindPrimeRing(int n, int index, int* arr){ if(index == n+1) { if(IsPrime[arr[index-1] + 1]) Print_Prime_Ring(arr, n); return ; } for(int i = 2; i <= n; ++i) { if(!visit[i] && IsPrime[i+arr[index-1]]) { visit[i] = 1; arr[index] = i; FindPrimeRing(n, index+1, arr); visit[i] = 0; } }}int main(){ int n, kcase = 1; PreCheckPrime(); while(~scanf("%d", &n)) { printf("Case %d:\n", kcase++); int arr[MAXN]; memset(visit, 0, sizeof(visit)); arr[1] = 1; visit[1] = 1; FindPrimeRing(n, 2, arr); printf("\n"); } return 0;}
- 九度 Prime Ring Problem hdu 1016
- 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
- 06.黑马程序员-点语法、成员变量作用域
- BZOJ2733 [HNOI2012]永无乡 平衡树启发式合并
- win7 visual studio 2010 安装错误
- 每天一点iOS知识回顾1
- java Swing编程之布局管理器简单实例DEMO
- 九度 Prime Ring Problem hdu 1016
- 思科寄存器值
- 对象模型图【OMD】阅读指南
- 学习记录
- Java Doc 建议不要使用 JPasswordField.getText()
- 3.进程间的软中断通信
- POJ训练计划3349_Snowflake Snow Snowflakes(哈希)
- 希尔排序(分组插入法)
- 分析cocos2d-x是如何异步的去加载图片