hdoj1016(深度遍历)
2017-05-20 21:41
148 查看
考察深度遍历。(visited[]数组)
#include<stdio.h> #include<iostream> using namespace std; int n,a[21]; bool vis[21]; int prime_sum[12]={2,3,5,7,11,13,17,19,23,29,31,37}; bool prime(int x) { for(int i=0;i<12;i++) { if(prime_sum[i]==x)return true; } return false; } void prin() { for(int i=1;i<n;i++) printf("%d ",a[i]); printf("%d",a ); } bool dfs(int pre,int post,int num) { if(!prime(pre+post))return false; a[num]=post; if(num==n&&prime(post+1)) { prin(); printf("\n"); return true; } vis[post]=false; for(int i = 2;i<=n;i++) if(vis[i]&& dfs(post,i,num+1))break; vis[post] = true; return false; } int main() { int count; count = 1; while(scanf("%d",&n)!=EOF) { for(int i = 1; i <= n; i++) vis[i] = true; a[1] = 1; printf("Case %d:\n",count++); if(n==1)printf("1\n"); for(int i = 2;i<=n;i++) dfs(1,i,2); printf("\n"); } return 0; }
相关文章推荐
- hdoj 1016 素数圆环问题(深度优先搜索z和道题 )
- HDOJ 3460 Ancient Printer (字典树 + 深度遍历)
- hdoj1016 Prime Ring Problem (深度搜索)
- zoj 2110 hdoj 1010 深度遍历+奇偶性剪枝
- hdoj 1312 Red and Black 深度遍历的实现
- 二叉树的遍历,深度求解以及竖向打印详析
- 05-遍历三种方式(递归遍历,广度遍历,深度遍历)
- 二叉树的建树,按层遍历,结点总数,页结点,深度以及三序非递归遍历二叉树,建立中序线索二叉树
- 第十二周【项目五-迷宫问题之深度优先遍历解法】
- 图的深度 广度 遍历
- 数据结构与算法专题之图——图的遍历(深度优先遍历和广度优先遍历)
- 第十二周项目5-迷宫问题之图深度优先遍历解法
- 第十二周-项目五 迷宫问题之图深度优先遍历解法
- HDOJ 1016 Prime Ring Problem
- 南邮 OJ 1018 深度遍历二叉树
- 数据结构-深度遍历和广度遍历
- 深度优先遍历与广度优先遍历
- 二叉树的层次遍历以及二叉树的深度
- 图的邻接表存储 深度优先遍历 广度优先遍历 C语言实现
- 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现