*寒假水106——素数环 搜索
2018-02-24 00:51
281 查看
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.
Inputn (0 < n < 20).
OutputThe 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.
Sample Input
Note: the number of first circle should always be 1.
Inputn (0 < n < 20).
OutputThe 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.
Sample Input
6 8Sample Output
Case 1: 1 4 3 2 5 6 1 6 5 2 3 4 Case 2: 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1 6 7 4 3 8 5 2
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; int sushu[40]={0,1,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,0,0};//素数打表,因为n最大是20,所以只要打到40 int xin[21],pei[21]; int n; void dfs(int a) { int i; if(a==n&&sushu[pei[a-1]+pei[0]]) { for(i=0;i<a-1;i++) cout<<pei[i]<<" "; cout<<pei[a-1]<<endl; } else { for(i=2;i<=n;i++) { if(!xin[i]) { if(sushu[i+pei[a-1]]) { xin[i]=-1; pei[a++]=i; dfs(a); xin[i]=0; a--; } } } } } int main() { int num=0; while(cin>>n) { num++; printf("Case %d:\n",num); memset(xin,0,sizeof(xin)); pei[0]=1; dfs(1); cout<<endl; } return 0; }题解:看到题目时我就按捺不住内心的激动,没错,王岐叔叔让我们写过这道题。想当初,那是一个温暖的阳光洒进教室来的午后,我爬在桌子上想这道题,嗯,我果然睡着了,一觉起来夕阳都没了。好在很快写下了这道题的框架。
相关文章推荐
- HDU 1016素数环(深度搜索)
- *寒假水110——搜索【广搜】
- 寒假水111——搜索【深搜】
- 2015 寒假搜索专题 K - Backward Digit Sums
- Prime Ring Problem (素数环)深度优先搜索
- I - 素数环 搜索
- sduacm16级寒假训练 搜索与背包
- 寒假前刷题(5)搜索系列 bfs poj 1426
- *寒假水98——搜索 【深搜】
- 搜索——素数环(hdu1016)
- 寒假训练——POJ - 2488 A Knight's Journey 搜索+贪心
- 素数环(简单搜索)
- sduacm16级寒假训练 搜索与背包
- 2018年全国多校算法寒假训练营练习比赛(第四场) - G - 老子的意大利炮呢(搜索)
- 寒假前刷题(7)搜索系列 dfs hdu 1010
- 寒假前刷题(10)搜索系列 hdu 1242
- 寒假前刷题(8)搜索系列 dfs hdu 1241
- 寒假第四周训练——搜索笔记及杂记
- HDU 1016 Prime Ring Problem(搜索,素数环)
- 2015 寒假搜索专题 I - Meteor Shower(BFS)