UVa 524 - Prime Ring Problem
题目大意:输入正整数n,把整数1,2...,n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针(题目中说的不是很明白??)排列。同一个环应恰好输出一次。
枚举,并在枚举每一个数是进行判断,可以提高效率。
#include <cstdio>
#include <cstring> int A[], vis[];
int n; int is_prime(int n)
{
for(int i = ; i*i <= n; i++)
if(n % i == ) return ;
return ;
} void dfs(int cur)
{
if(cur == n && is_prime(A[]+A[n-]))
{
for(int i = ; i < n; i++)
{
printf("%d", A[i]);
printf("%s", i == n- ? "\n" : " ");
}
return;
}
for(int i = ; i <= n; i++)
if(vis[i] == && is_prime(i+A[cur-]))
{
A[cur] = i;
vis[i] = ;
dfs(cur+);
vis[i] = ;
}
} int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
int kase = ;
while(scanf("%d", &n) != EOF)
{
memset(vis, , sizeof(vis));
A[] = ;
vis[] = ;
if (kase) printf("\n");
printf("Case %d:\n", ++kase);
dfs();
}
return ;
}
以前写了一次,WA了两次,也看不出来怎么错的,今天在JOJ又看到了,就又看了看,还是不知道怎么错的,知道搜别人代码了,然后发现是在最后一个case后多输一个空行,去掉后试了一下,竟然AC了...好吧,格式错误不是该是PE吗?害我一直以为是答案错了呢
UVa 524 - Prime Ring Problem的更多相关文章
- UVA - 524 Prime Ring Problem(dfs回溯法)
UVA - 524 Prime Ring Problem Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & % ...
- uva 524 prime ring problem——yhx
Prime Ring Problem A ring is composed of n (even number) circles as shown in diagram. Put natural ...
- UVa 524 Prime Ring Problem(DFS , 回溯)
题意 把1到n这n个数以1为首位围成一圈 输出全部满足随意相邻两数之和均为素数的全部排列 直接枚举排列看是否符合肯定会超时的 n最大为16 利用回溯法 边生成边推断 就要快非常多了 #inc ...
- UVa 524 Prime Ring Problem(回溯法)
传送门 Description A ring is composed of n (even number) circles as shown in diagram. Put natural numbe ...
- UVA - 524 Prime Ring Problem(素数环)(回溯法)
题意:输入n,把1~n组成个环,相邻两个数之和为素数. 分析:回溯法. #pragma comment(linker, "/STACK:102400000, 102400000") ...
- UVa 524 Prime Ring Problem【回溯】
题意:给出n,把从1到n排成一个环,输出相邻两个数的和为素数的序列 照着紫书敲的, 大概就是这个地方需要注意下,初始化的时候a[0]=1,然后dfs(1),从第1个位置开始搜 #include< ...
- uva 524(Prime Ring Problem UVA - 524 )
dfs练习题,我素数打表的时候j=i了,一直没发现实际上是j=i*i,以后可记住了.还有最后一行不能有空格...昏迷了半天 我的代码(紫书上的算法) #include <bits/stdc++. ...
- Uva 552 Prime Ring Problem(dfs)
题目链接:Uva 552 思路分析:时间限制为3s,数据较小,使用深度搜索查找所有的解. 代码如下: #include <iostream> #include <string.h&g ...
- Uva 524 Prime Ring
如果用全排列生成之后,在判断是否是素数环是会超时的,应该用回溯. 回溯的时候 首先要注意 递归边界 ,结束的时候别忘记判断最后一个和第一个元素能否成立 还有要记得vis的使用和递归之后的清理. # ...
随机推荐
- mysql 创建数据 utf8
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- PPTP-VPN日志功能,记录用户登录时间,流量统计,IP地址等信息
我们先看两个文件 /etc/ppp/ip-up /etc/ppp/ip-down 这两个文件为shell脚本,当PPTP用户连接或者断开时分别执行这两个文件,并且会带相应的参数 这些参数有 $PEER ...
- 励研(LY) CRC16算法
/**************************************************** ** 函数名称: CalculateCRC16 ** 输 入: buf 要校验的数据; le ...
- PHP的json_encode中文被转码的问题
在php5.2中做json_encode的时候.中文会被unicode编码, php5.3加入了options参数, 5.4以后才加入JSON_UNESCAPED_UNICODE,这个参数,不需要做e ...
- CentOS6.5 添加epel源
0.安装yum优先级插件 yum install yum-priorities 1.epel简介: https://fedoraproject.org/wiki/EPEL/zh-cn rpm -Uvh ...
- 如何打开USB OTG功能:
一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确)二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OT ...
- BZOJ 2276 Temperature
two-pointer型单调队列.... #include<iostream> #include<cstdio> #include<cstring> #includ ...
- 【GO】关于GO的浅显总结
最近看了下go的入门教程,被它的强大震撼了,第一印象感觉特点主要有如下几个吧: 1. 集c,python,erlang之长,和c同属静态语言,保证效率:语法如python一样简洁,库很强大:从erla ...
- hibernate--session的CRUD方法, delete, load,get,update,saveorupdate, clear, flush
删除方法: 新建的对象立马被删除 @Test public void testDelete() { Teacher t = new Teacher(); t.setName("t1" ...
- MRC的下setter访问器的两种形式
// Person复合了Phone和Room // 第一种:比较合理 先判断对象形参传递的对象和原属性是否一致,不一致在释放旧值,给形参传递的值retain,因为retain方法会返回该对象,因此可以 ...