Prime Ring Problem素数环(HDU1016)
2024-09-01 02:20:33
思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件。字典序可以采用扩展时从小到大枚举。另外注意对于每个case多输出一个换行,行末不要有空格。
#include<bits/stdc++.h>
using namespace std;
int n,cnt,a[25];
bool p[45],vis[25];
void print()
{
for(int i=1;i<=n;++i)
printf("%d%c",a[i],i==n?'\n':' ');
}
void dfs(int step)
{
if(step==n+1)
{
if(p[a[1]+a[n]])print();
return;
}
for(int i=2;i<=n;++i)
{
if(vis[i])continue;
if(p[a[step-1]+i])
{
vis[i]=true;
a[step]=i;
dfs(step+1);
vis[i]=false;
}
}
}
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]=true;
a[1]=1;vis[1]=true;
while(scanf("%d",&n)!=EOF)
{
printf("Case %d:\n",++cnt);
dfs(2);
printf("\n");
}
return 0;
}
最新文章
- *HDU 1028 母函数
- [ZT] Vim快捷键分类
- R统计图
- InnoDB与UUID
- Html.Action、html.ActionLink与Url.Action的区别
- [BZOJ1085] [SCOI2005] 骑士精神 (A*)
- Spring Security 入门(1-6-2)Spring Security - 内置的filter顺序、自定义filter、http元素和对应的filterChain
- Ubuntu系统下配置IP地址方法介绍
- 015模块&mdash;&mdash;起别名
- mysql判断表里面一个逗号分隔的字符串是否包含单个字符串、查询结果用逗号分隔
- linux权限相关操作
- Java知多少(76)语言包(java.lang)简介
- dhcp、tftp及pxe简介
- Mac Terminal
- iOS开发技巧 - 使用UIDatePicker来选择日期和时间
- MySQL--修改普通表为自增表
- 11g数据库查看dataguard是否同步
- MongoDB Sort op eration used more than the maximum 33554432 bytes of RAM. Add an index, or speci fy a smaller limit.
- 共享keychain数据
- css3鼠标经过出现转圈菜单(仿)
热门文章
- 第4节 Scala中的actor介绍:1、actor概念介绍;2、actor执行顺序和发送消息的方式
- A easy and simple way to establish Oracle ADG
- 「SPOJ1487」Query on a tree III
- Mybatis 条件判断单双引号解析问题
- 「NOIP2009」Hankson 的趣味题
- W3C网页标准
- mmap 与 munmap
- Immediate Decodability[UVA644](Trie入门)
- 浏览器之本地缓存存储 localStorage 和 sessionStorage的区别以及用法
- 三 Road