HDU 1016 素数环问题
题目大意:
给定1-n这n个数,组成以1开头的素数环,保证相邻两个数相加均为素数
题目用dfs搜索再回溯,这样碰到不成立的立刻退出递归,就减少了很多步骤,不然暴力来就是n!次复杂度,肯定是超时的
每次添入数据都要判断是否相邻数相加为素数,所以我们可以提前打个素数表,这样使自己判断素数更加方便
#include <cstdio>
#include <cstring> using namespace std; #define N 22
int n , a[N] , visit[N] , prime[]; void prime_table()
{
memset(prime,,sizeof(prime));
for(int i = ;i<;i++){
if(!prime[i]){
for(int j=i+i;j<;j+=i)
prime[j] = ;
}
}
} void dfs(int x,int cnt)
{
visit[x] = ;
if(cnt == n && !prime[a[]+a[cnt-]]){
printf("%d",a[]);
for(int i=;i<cnt;i++)
printf(" %d",a[i]);
printf("\n");
} for(int i=;i<=n;i++){
if(!visit[i]&& !prime[a[cnt-]+i]){
a[cnt] = i;
dfs(i,cnt+);
visit[i]=;//回溯
}
}
} int main()
{
int t = ;
prime_table();
while(~scanf("%d",&n))
{
printf("Case %d:\n",t); memset(visit,,sizeof(visit));
a[] = ;
dfs(,);
//这里一组数据做完记得换行,题目要求
printf("\n");
t++;
}
}
HDU 1016 素数环问题的更多相关文章
- HDU 1016(素数环 深搜)
题意是说对一个长度为 n 的数环进行排列,使得相邻两数的和为素数,按从小到大的顺序依次输出. 因为是环,所以总能调整成以 1 为序列首输出.用深度优先搜索的方法即可.在判断素数时由于 n 小于 20, ...
- HDU 1016 Prime Ring Problem(素数环问题)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...
- Hdu 1016 Prime Ring Problem (素数环经典dfs)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- [HDU 1016]--Prime Ring Problem(回溯)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...
- 素数环问题[XDU1010]
Problem 1010 - 素数环问题 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 972 Acc ...
- HDU 1016 Prime Ring Problem(经典DFS+回溯)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- nyist 488 素数环(搜索+回溯)
素数环 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 有一个整数n,把从1到n的数字无反复的排列成环,且使每相邻两个数(包含首尾)的和都为素数,称为素数环. ...
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- 素数环 南阳acm488(回溯法)
素数环 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简 ...
随机推荐
- 递推DP UVA 1291 Dance Dance Revolution
题目传送门 题意:给一串跳舞的动作,至少一只脚落到指定的位置,不同的走法有不同的体力消耗,问最小体力消费多少分析:dp[i][j][k] 表示前i个动作,当前状态(j, k)的最小消费,状态转移方程: ...
- Toasts官方教程
Toasts IN THIS DOCUMENT The Basics Positioning your Toast Creating a Custom Toast View 在其它线程中启动Toast ...
- SharePoint Server 2013 Search Service stop
管理中心 - 系统设置 - 管理服务器上的服务:“搜索主机控制器服务” 停止即可,服务器管理 - 工具 - 服务 :sharepoint search host controller 服务会自动禁用.
- WCF中的异步实现
对于WCF中通讯的双方来说,客户端可以异步的调用服务:服务端对服务也能以异步的方式实现. 目录: 1.WCF客户端异步调用服务 2.服务端的异步实现 WCF客户端异步调用服务主要通过生成异步的代理类, ...
- oracle 创建表
--创建表 create table browser_track( btId number not null , opend_id ) not null, url_address ) not null ...
- jQuery动画处理
$(selector).hide(speed,callback);隐藏 $(selector).show(speed,callback);显示 $(selector).toggle(speed,cal ...
- myslq 5.7 root 默认密码
sudo sumysqld_safe --skip-grant-tables --skip-networking & UPDATE mysql.user SET password=PASSWO ...
- CentOS 7 配置本地yum 源
1. 加载 CentOS的ISO镜像并挂载: [root@localhost files]# mount /media/files/CentOS-7-x86_64-DVD-1611.iso /mnt/ ...
- 大众点评APP分析随笔
移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...
- zabbix基础安装
环境依赖:LNMP或者LAMP 简介参考:http://blog.51cto.com/zhang789/1868880 一.准备 我安装的环境及其版本如下: 系统版本 CentOS Linux rel ...