hdoj 1016经典问题素数环
2012-12-25 01:15
239 查看
//经典搜索题 #include <iostream> #include <cstring> using namespace std; int primelist[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}; //素数表, int n; int A[21]; //存放序列结果 int vis[21]; //访问标记 void DFS(int cur) { if(cur == n && primelist[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(!vis[i] && primelist[i + A[cur-1]]) //如果i没有用过并且能与前面的数和成素数 { A[cur] = i; //标记i已访问 vis[i] = 1; //将i加入结果序列 DFS(cur+1); //递归访问 vis[i] = 0; //回溯法标准框架去掉标记 } } } } int main() { int count = 0; A[0] = 1; while(cin>>n) { memset(vis,0,sizeof(vis)); count++; cout<<"Case "<<count<<":"<<endl; DFS(1); cout<<endl; } return 0; }
刘汝佳白书上的题目,回溯法标准框架
相关文章推荐
- hdoj problem 1016 Prime Ring Problem(素数环&&素数问题+DFS(回溯法))
- hdoj 1016 素数圆环问题(深度优先搜索z和道题 )
- HDOJ——1016(经典dfs搜索题)
- HDOJ-2138+HDOJ-1215 素数查找、素数约数和公式问题[总结:筛选法]
- HDOJ2084 数塔(经典的动态规划问题)
- 素数环问题 prime ACM HDU 1016
- HDU-1016素数环问题
- hdoj 2553 N皇后问题 【经典搜索】
- java经典50道题之3素数问题
- HDOJ2037 今年暑假不AC (经典的贪心问题)
- 一些DP经典问题:HDU(hdoj) 2126,1176,2546,1159
- hdoj 1262 寻找素数对(数学问题)
- hdoj 1950 Bridging signals 【DP经典问题LIS 的 经典算法】
- 周练个人赛(hdoj 1795)(求素数问题)
- HDOJ_1016 素数环
- 递归与回溯 HDOJ 2553 N皇后问题 1016 Prime Ring Problem
- HDOJ 1016 圆环和为素数 类似于全排列、八皇后,仅check函数不一样而已
- HDOJ 2111 Saving HDU (经典的背包贪心问题)
- java经典问题_素数
- 兔子问题 素数 水仙花数 三个经典C程序的解答 C知识回顾第一天