hdu1016 (素数表+回溯)
来源:互联网 发布:淘宝店铺文案 编辑:程序博客网 时间:2024/04/29 08:00
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016
题目大意:
求n个数字排成环,环上相邻的数字相加为素数,按字典序输出
白书上的原题吧。
#include <iostream>#include<memory.h>#include<cstdio>#include<cmath>using namespace std;const int maxn=45;int prime[maxn];int vis[21];int path[21];int n;void init(){ memset(prime,-1,sizeof(prime)); memset(vis,0,sizeof(vis));}void makePrimeTable(){ int m=40; int mm=sqrt(m+0.5); prime[0]=prime[1]=0; for(int i=2;i<=mm;++i){ if(prime[i]){ for(int j=i*i;j<=m;j+=i){ prime[j]=0; } } }}void dfs(int step){ //cout<<step<<endl; if(step==n&&prime[path[0]+path[n-1]]) { for(int i=0;i<n;++i) { cout<<path[i]; if(i!=n-1)cout<<" "; else cout<<endl; } return; } for(int i=2;i<=n;++i) { if(!vis[i]&&prime[i+path[step-1]]) { path[step]=i; vis[i]=1; dfs(step+1); vis[i]=0; } }}int main(){ //freopen("in.txt","r",stdin); init(); makePrimeTable(); path[0]=1; int c=1; while(cin>>n) { cout<<"Case "<<c++<<":"<<endl; dfs(1); cout<<endl; } return 0;}
0 0
- hdu1016 (素数表+回溯)
- hdu1016 深搜回溯
- hdu1016-dfs回溯法
- 素数环问题 hdu1016
- hdu1016(素数环)
- hdu1016(素数环)
- HDU1016-素数环
- hdu1016素数环(DFS)
- HDU1016素数环
- HDU1016(素数环)
- 【HDU1016】素数环(dfs)
- hdu1016-素数环
- hdu1016 DFS+素数判断
- HDU1016 Prime Ring Problem 【回溯】
- hdu1016 Prime Ring Problem dfs 素数打表
- hdu1016(素数环剪枝dfs)
- hdu1016(dfs运用)素数环
- HDU1016简单DFS 素数圈
- Ubuntu 14.04 将其他盘挂载到/home的子目录下
- 修改流式布局,模仿华为手机自带设置里多语言条件下的名称字符展示
- bash的工作特性之命令状态返回值和命令符
- 中文文案排版指南
- String(byte[] bytes, Charset charset) 和 getBytes() 使用
- hdu1016 (素数表+回溯)
- hdu5904 BestCoder Round #87 LCIS -dp
- 代理服务是个什么东西?
- Windows 10完美识别3TB硬盘实录
- int 值 字节翻转
- csdn如何转载别人的文章
- Struts1进阶(一)
- ContentResolver
- HTML网页制作基础第七弹