整理参考自:杭电OJ——1016 Prime Ring Problem
题意:
给出一个N(0<N<20),在1~N的所有排列中,满足相邻两个数之和是素数(头尾相邻)的排列输出
常规思路:
全排列出所有可能,从中找符合条件的
优化①:
更高效的方法是,一边排列一边检查,这样可以提早发现不满足条件的候选解,提早剪枝,避免不必要的搜索,
1 void PrimeCircle(int a[], int n, int t)
2 {
3 if(t == n)
4 {
5 Output(a, n) ; // 找到一个解
6 }
7 else
8 {
9 for(int i = 1; i <= n; i++)
10 {
1