HDOJ1016(搜索DFS)
来源:互联网 发布:字幕视频合成软件 编辑:程序博客网 时间:2024/05/22 00:39
Prime Ring Problem
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38643 Accepted Submission(s): 17073
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
此题目是dfs问题,要回回溯
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int n;int a[21];//存放结果int sign[21];//用来标记int isprime[38]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1};void dfs(int m){ //结束条件 if(m==n&&isprime[a[n-1]+a[0]])//因为是环,判断最后一位和第一位的和 { cout << a[0]; for(int i=1;i<n;i++) cout << " " << a[i]; cout << endl; } else { for(int i=2;i<=n;i++) { if(!sign[i]&&isprime[i+a[m-1]]) { a[m]=i; sign[i]=1;//已经用过,标记为1 dfs(m+1);//递归 sign[i]=0;//如果递归回来没有用到这个数,重新标记为可用的 } } }}int main(){ int count=0; a[0]=1; while(~scanf("%d",&n)) { memset(sign,0,sizeof(sign)); count++; cout << "Case " << count <<":" << endl; dfs(1); cout << endl; } return 0;}
0 0
- HDOJ1016(搜索DFS)
- HDOJ1016 Prime Ring Problem(基础DFS)
- dfs入门hdoj1016题解
- HDOJ1016素数环 DFS
- 搜索专题HDOJ1016输出环
- hdoj1016(深度遍历)
- hdoj1016
- hdoj1016
- hdoj1016 Prime Ring Problem dfs+回溯
- HDOJ1016 Prime Ring Problem (DFS,回溯)
- hdoj1016 Prime Ring Problem (深度搜索)
- 搜索(dfs)
- 深度优先搜索 (DFS)
- 搜索 (bfs,dfs) 总结
- 深度优先搜索(DFS)
- 深度优先搜索(DFS)
- 迷宫(深度搜索dfs)
- DFS(深度优先搜索)
- 由浅入深学习MySQL
- OpenCV典型程序结构
- 2015蓝桥杯 曼哈顿距离
- Java架构
- 一般运行时间
- HDOJ1016(搜索DFS)
- Quartz2D - 基本图形绘制(形状)
- Unexpected Exception caught setting 'x' on class xx:Error setting expression 'xx' with value ['x',]
- Hadoop作业提交与停止命令
- Failed to extend swap file from 0 kb to xxx kb.
- java高级---线程、网络、文件、流、序列化等代码示例
- IO流之字符流
- Android常用系统广播
- Multi-digits Recognition Using ConVNet on Mobile categories: