HDU1016
来源:互联网 发布:太极拳威力知乎 编辑:程序博客网 时间:2024/05/20 23:34
1.题目描述:
Prime Ring Problem
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47878 Accepted Submission(s): 21148
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
Source
Asia 1996, Shanghai (Mainland China)
Recommend
JGShining
2.题意概述:给你1~n个数要你把它们排列成一个环使得相邻两个数相加是素数,问你这样的排列方式
3.解题思路:
首先是素数打表,然后dfs放,注意回溯!
4.AC代码:
#include <stdio.h>#include <string.h>#define N 45using namespace std;int num[20], vis[20], isprime[N], n;void getprime(){for (int i = 2; i < 8; i++){if (!isprime[i])for (int j = i * i; j < 45; j += i)isprime[j] = 1;}}void dfs(int step){if (step == n + 1 && !isprime[num[n] + num[1]]){for (int i = 1; i <= n; i++)if (i == 1)printf("%d", num[i]);elseprintf(" %d", num[i]);puts("");return;}for (int i = 2; i <= n; i++){if (!vis[i] && !isprime[num[step - 1] + i]){num[step] = i;vis[i] = 1;dfs(step + 1);vis[i] = 0;}}}int main(){int kase = 1;num[1] = 1;getprime();while (scanf("%d", &n) != EOF){memset(vis, 0, sizeof(vis));printf("Case %d:\n", kase++);dfs(2);puts("");}return 0;}
0 0
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- hdu1016
- HDU1016
- HDU1016
- hdu1016
- hdu1016
- HDU1016
- hdu1016
- hdu1016
- hdu1016
- MySQL错误ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)的解决
- 获取mac地址和IP地址方式
- 拦截器
- 什么是WEB
- Spring websocket ssl和摘要认证
- HDU1016
- 剑指Offer系列-面试题34:丑数
- One python demo to analysis the decoding time and update texture and swapbuffer time
- 负载均衡的四层和七层区别
- 3、编辑器--动作编辑器需求
- 国际化
- 同一进程下的线程可以共享哪些资源
- 史上最全的Maven Pom文件标签详解
- 哈密顿图