POJ1016 素数环DFS+打表
来源:互联网 发布:腾讯linux运维面试题 编辑:程序博客网 时间:2024/06/06 04:16
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016
题意: 输入一个N, 让你在1-N个数字中找到一个序列满足 相邻两个相加为质数
数据规模不会很打,打表加DFS搜索到所有数字进栈。注意最后要判断 最后一个数跟1是否满足条件
#include<stdio.h>#include<cmath>#include<iostream>#include<algorithm>#include<string.h>#include<queue>using namespace std;int p[40], vis[20],result[20];int n;void DFS(int begin, int num) // begin表示前一个字母,num表示后一个字母{ int i, j; if(num == n && p[result[1]+result[num]]) //递归边界。注意测试第一个数和最后一个数 { for(i=1; i<n; ++i) //打印方案 printf("%d ",result[i]); printf("%d",result[i]); printf("\n"); return; } for(i=2; i<=n; ++i) //尝试放置每一个数i if(p[begin+i] && vis[i] == 0) { result[num+1] = i; vis[i] = 1; DFS(i, num+1); vis[i] = 0; }}int main(){ p[2] = p[3] = p[5] = p[7] = p[11] = p[13] = p[17] = p[19] = p[23] = p[29] = p[31] = p[37] = 1; int i, nCases = 1; while(scanf("%d", &n) != EOF) { printf("Case %d:\n", nCases++); result[1] = 1; if(n%2 == 0) //偶数个不可能 DFS(1, 1); printf("\n"); memset(vis, 0, sizeof(vis)); } return 0;}
0 0
- POJ1016 素数环DFS+打表
- HDU4542(反素数+DFS+暴力打表)
- 找质因数..打素数表..DFS解容斥问题...
- HDU Prime Ring Problem (DFS+素数打表)
- hdu1016 Prime Ring Problem dfs 素数打表
- 杭电-1016Prime Ring Problem(素数打表+DFS)
- BZOJ_P1503&Codevs_P2912 [HAOI2007]反素数ant(打表+DFS)
- 【BZOJ1053】【DFS】【打表】[HAOI2007]反素数ant 题解
- poj1016 Prime Ring Problem---dfs
- 素数判定 - 素数打表
- 打素数表
- 素数打表
- 打素数表
- 高效素数打表
- 素数打表
- 素数打表
- 素数打表
- 素数打表
- form表单验证
- uva10382 - Watering Grass(区间覆盖变形)
- vmware 10+ubuntu 14.04 搭建CTS测试环境
- 凤凰台特讨厌讨厌人同意
- hdu 1372 knight Moves
- POJ1016 素数环DFS+打表
- ACM 数论 SGU 444Headstrong Student
- POJ 2386 LakeCounting
- 同任何人和认同和认同和认同和认同和认同后天
- JDBC连接MySql数据库
- 使用Weka进行数据挖掘
- Zookeeper工作原理
- 他已经特价特价同样同样
- 基于Cortex-M3的嵌入式以太网门禁系统设计