素数环,暴力剪枝
Posted coolwx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了素数环,暴力剪枝相关的知识,希望对你有一定的参考价值。
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.
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.
剪枝还是很暴力的,学到了
1 #include <iostream> 2 #include <cstdio> 3 #include <set> 4 #include <cmath> 5 #include <cstring> 6 using namespace std; 7 set<int> prime; 8 int record[23]; 9 bool is[23]; 10 void dfs(int now,int n) 11 12 if(now==n-1&&prime.find(1+record[n-1])!=prime.end()) 13 14 for(int i=0;i<n-1;i++) 15 printf("%d ",record[i]); 16 printf("%d",record[n-1]); 17 printf("\n"); 18 return; 19 20 else 21 22 if(record[now]%2==1) 23 24 for(int i=2;i<=n;i+=2) 25 26 if(is[i]==false&&prime.find(i+record[now])!=prime.end()) 27 28 record[now+1]=i; 29 is[i]=true; 30 dfs(now+1,n); 31 is[i]=false; 32 33 34 35 36 if(record[now]%2==0) 37 38 for(int i=1;i<=n;i+=2) 39 40 if(is[i]==false&&prime.find(i+record[now])!=prime.end()) 41 42 record[now+1]=i; 43 is[i]=true; 44 dfs(now+1,n); 45 is[i]=false; 46 47 48 49 50 51 int main() 52 53 for(int i=2;i<=42;i++) 54 55 int flag=0; 56 for(int j=2;j<=sqrt(i);j++) 57 58 if(i%j==0) 59 60 flag=1; 61 break; 62 63 64 if(flag==0) 65 66 prime.insert(i); 67 68 int mm=0; 69 int n; 70 while(scanf("%d",&n)!=EOF) 71 72 mm++; 73 printf("Case %d:\n",mm); 74 if(n%2==1) 75 76 printf("\n\n"); 77 78 else 79 80 record[0]=1; 81 is[1]=true; 82 dfs(0,n); 83 printf("\n"); 84 85 86 87
以上是关于素数环,暴力剪枝的主要内容,如果未能解决你的问题,请参考以下文章
hdu 4542 "小明系列故事——未知剩余系" (反素数+DFS剪枝)
python 井字棋 ALPHA-BETA剪枝算法和暴力算法 具体代码