【dfs】hdu 1016 Prime Ring Problem
2015-07-23 23:31
417 查看
【dfs】hdu 1016 Prime Ring Problem
题目链接刚开始接触搜索,先来一道基本题目练练手。
注意对树的深度进行dfs
dfs过程中注意回退!!!
素数提前打表判断快一些
参考代码
/*Author:Hacker_vision*/ #include<bits/stdc++.h> #define clr(k,v) memset(k,v,sizeof(k)) using namespace std; const int _max=1e3+10;//素数打表 int n,pri[]={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,0,0,0}; bool vis[_max]; int v[_max];//存储序列 void dfs(int deep){ //对树的深度 if(deep==n&&pri[v[deep-1]+1]==1){ //递归基,这里用作输出 int i;for(i=0; i< n-1; ++i ) cout<<v[i]<<" ";cout<<v[i]<<endl; return; } for(int i=2; i <= n; ++ i) if(!vis[i]&&pri[i+v[deep-1]]==1){ vis[i]=true; v[deep]=i; //访问这个节点 dfs(deep+1); //深度自加 vis[i]=false; //该节点会出现在其他同深度节点的树林中,回退!!关键啊 } } int main(){ //freopen("input.txt","r",stdin); int cnt=1; while(cin>>n){ clr(vis,0); v[0]=1; printf("Case %d:\n",cnt++); dfs(1); puts(""); } return 0; }
加粗
Ctrl + B
斜体
Ctrl + I
引用
Ctrl + Q
插入链接
Ctrl + L
插入代码
Ctrl + K
插入图片
Ctrl + G
提升标题
Ctrl + H
有序列表
Ctrl + O
无序列表
Ctrl + U
横线
Ctrl + R
撤销
Ctrl + Z
重做
Ctrl + Y
相关文章推荐
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- win2003分布式文件系统(dfs)配置方法[图文详解]
- win2003分布式文件系统及其部署 图文教程
- Hadoop2.6+jdk8的安装部署(1)——使用jar包安装部署【详细】
- Hadoop FS Shell
- DFS使用方法总结
- FastDFS注意事项
- 无忧技术带您预览DFS(分布式文件系统)管理控制台
- C 语言实现迷宫 DFS算法
- 一幅图弄清DFT与DTFT,DFS的关系
- HDFS---Namenode
- HDFS ---- Services startup
- POJ1523 SPF dfs
- poj1731 Orders dfs
- Surrounded Regions
- Binary Tree Zigzag Level Order Traversal,Restore IP Addresses,Word Search,Simplify Path
- ZOJ Problem Set - 1711 解题报告
- ZOJ Problem Set - 2412解题报告
- ZOJ Problem Set - 1457 解题报告
- Letter Combinations of a Phone Number