hdu 1016 prime ring 简单dfs输出
来源:互联网 发布:编程:字符串压缩 编辑:程序博客网 时间:2024/05/16 08:47
少见的一次性写对的代码
不过注意的一点是对于dfs中visited一定要记得第一次调用dfs的时候就要设置为1
还有就是险些错误的就是dfs的终止条件的判断,虽然n代表环的节点总数但是序列数组是从0开始的!
#include <iostream>
#include<cstdio>#include<cstring>
using namespace std;
int n,k;
int visited[20];
int seq[20];
int isPrime[50];
void print()
{
for(int i=0;i<n;i++)
{
if(i!=0)putchar(' ');
printf("%d",seq[i]);
}
putchar('\n');
}
void dfs(int num)
{
if(num==n&&isPrime[seq[num-1]+1])
{
print();
return ;
}
for(int i=2;i<=n;i++)
{
if(!visited[i]&&isPrime[i+seq[num-1]])
{
seq[num]=i;
visited[i]=1;
dfs(num+1);
visited[i]=0;
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
for(int i=2;i<=40;i++)
{
isPrime[i]=1;
for(int j=2;j*j<=i;j++)
{
if(i%j==0)
{
isPrime[i]=0;
break;
}
}
}
while(scanf("%d",&n)==1)
{
k++;
printf("Case %d:\n",k);
memset(seq,0,sizeof(seq));
memset(visited,0,sizeof(visited));
visited[1]=1;
seq[0]=1;
dfs(1);
putchar('\n');
}
return 0;
}
0 0
- hdu 1016 prime ring 简单dfs输出
- HDU 1016Prime Ring Problem简单dfs
- HDU 1016 Prime Ring Problem 简单DFS
- HDU 1016 - Prime Ring Problem [简单DFS]
- Prime Ring Problem hdu 1016 dfs
- Hdu-1016 Prime Ring Problem【DFS】
- HDU 1016(Prime Ring Problem)DFS
- hdu 1016 Prime Ring Problem dfs搜索
- hdu 1016 Prime Ring Problem (dfs)
- hdu 1016 Prime Ring Problem(DFS)
- HDU 1016 Prime Ring Problem【DFS】
- hdu 1016 Prime Ring Problem(DFS)
- HDU 1016 Prime Ring Problem (DFS)
- HDU 1016Prime Ring Problem(dfs)
- hdu 1016 Prime Ring Problem (dfs)
- hdu 1016 Prime Ring Problem dfs
- Hdu 1016 Prime Ring Problem DFS搜索
- HDU 1016 Prime Ring Problem(DFS)
- memcache分布式
- php 环境安装(源码包)
- 栈&&括号匹配
- Sikuli Selenium Robotframework 集成
- Eclipse 查看项目部署位置
- hdu 1016 prime ring 简单dfs输出
- memcache的集群、高可用
- Partition-Wise Join of List-Partitioned Tables
- cell属性改变后又快速恢复初始化属性的解决方法
- oracle分区表之交换分区 altertable exchange partition with table
- -----oc基础语法---oc特有语法(1)
- Ubuntu安装Emacs出现到依赖问题及解决方案
- nginx反向代理原理
- ubuntu14.04 安装hadoop