【B001】Hi,大家好,今天我的博客第一天开通,今天奉上开博题,出自首都师师范大学附属中学OJ(题号未知在练习场中)原题为UVa524,题目要求如下:

【难度B】————————————————————————————————————————————————————————————————————————————————————————————

【题目要求】输入正整数n,用整数1,2,3,……,n 的某种排列组成一个环,使任意相邻的两数和均为素数。输出时从整数1开始逆时针排列,同一个环恰好输出一次。 有多种可能的排列,输出时按照字典序小的排列先输出的原则。

【输入要求】一个正整数n

【输入示例】

6

【输出实例】

2
1 4 3 2 5 6
1 6 5 2 3 4

【其他要求】数据范围:n〈=16

【试题分析】各位读者首先想到的是暴搜但当n为12时就已经慢得要命,此题必用回溯法(有点像dfs深搜)。

【代码】

#include <cstdio>
#include <cstring> int A[20], vis[20];
int n;
int t=0; int is_prime(int n)//判断质数
{
for(int i = 2; i*i <= n; i++)
if(n % i == 0) return 0;
return 1;
} void js(int xx)
{ if(xx == n && is_prime(A[0]+A[n-1]))
{
t++; } for(int i = 2; i <= n; i++)//尝试每一个数
if(vis[i] == 0 && is_prime(i+A[xx-1]))//判断是否和为质数
{
A[xx] = i;
vis[i] = 1;
js(xx+1);
vis[i] = 0;//清除标记
} }
void dfs(int cur)
{ if(cur == n && is_prime(A[0]+A[n-1]))
{
t++; } if(cur == n && is_prime(A[0]+A[n-1]))
{ for(int i = 0; i < n; i++)
{
printf("%d", A[i]);//打印方案
printf("%s", i == n-1 ? "\n" : " ");
}
return;
}
for(int i = 2; i <= n; i++)//尝试每一个数
if(vis[i] == 0 && is_prime(i+A[cur-1]))//判断是否和为质数
{
A[cur] = i;
vis[i] = 1;
dfs(cur+1);
vis[i] = 0;//清除标记
} } int main()//调用
{
#ifdef LOCAL #endif
int kase = 0;
while(scanf("%d", &n) != EOF)
{
memset(vis, 0, sizeof(vis));
A[0] = 1;
vis[1] = 1;
js(1);
printf("%d\n", t);
dfs(1);
}
return 0;
}

【注】此代码以AC稍有累赘,请各位读者多多指教(话说我一直粗心没看见示例中的2结果WA了4次)

本BLOG简介(内有一道UVa524素数环进阶版)【B001】的更多相关文章

  1. Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif

    Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif 一丶__str__ 和 __repr__ ...

  2. 素数环问题[XDU1010]

    Problem 1010 - 素数环问题 Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty: Total Submit: 972  Acc ...

  3. Prime Ring Problem + nyoj 素数环 + Oil Deposits + Red and Black

    Prime Ring Problem Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) ...

  4. nyist 488 素数环(搜索+回溯)

     素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 有一个整数n,把从1到n的数字无反复的排列成环,且使每相邻两个数(包含首尾)的和都为素数,称为素数环. ...

  5. Hdu 1016 Prime Ring Problem (素数环经典dfs)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  6. 【DFS】素数环问题

    题目: 输入正整数n,对1-n进行排列,使得相邻两个数之和均为素数,输出时从整数1开始,逆时针排列.同一个环应恰好输出一次.n<=16 如输入: 6 输出: 1 4 3 2 5 6 1 6 5 ...

  7. HDU 1016 Prime Ring Problem(素数环问题)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...

  8. 素数环 南阳acm488(回溯法)

    素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简 ...

  9. UVA 524 素数环 【dfs/回溯法】

    Description   A ring is composed of n (even number) circles as shown in diagram. Put natural numbers ...

随机推荐

  1. Express 4 中如何使用connect-mongo

    正在跟随上面的教程一步一步做,在会话支持那一节中安装 connect-mongo 后,添加: var MongoStore = require('connect-mongo')(express); v ...

  2. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(五) 之 加好友,加群流程,消息管理和即时消息提示的实现

    前言 前前一篇留了个小问题,在上一篇中忘了写了,就是关于LayIM已经封装好的上传文件或者图片的问题.对接好接口之后,如果上传速度慢,界面就会出现假死情况,虽然文件正在上传.于是我就简单做了个图标替代 ...

  3. JavaScript基础——实现循环

    循环是多次执行同一段代码的一种手段.当你需要在一个数组或对象集上重复执行相同的任务时,这是非常有用的. JavaScript提供执行for和while循环的功能. 1.while循环 JavaScri ...

  4. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

  5. Android Studio 生成Jar包时遇到的gradlew下载问题

    网上介绍说使用gradlew打包jar,可是输入gradlew makeJar后就开始download  XXX.zip,但是等了很久都没有完成.解决办法如下: 原文:http://blog.csdn ...

  6. elk安装(这个是初级的可以把这个套件安上)

    http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html ELK其实并不是一款软件,而是一整套解决方案,是三个开源软件Elastics ...

  7. tomcat7源码编译过程以及问题解决

    http://blog.csdn.net/kaoshangqinghua/article/details/40022315

  8. 讲解JS的promise,这篇是专业认真的!

    http://www.zhangxinxu.com/wordpress/2014/02/es6-javascript-promise-%E6%84%9F%E6%80%A7%E8%AE%A4%E7%9F ...

  9. 浅谈config文件的使用

    一.缘起 最近做项目开始使用C#,因为以前一直使用的是C++,因此面向对象思想方面的知识还是比较全面的,反而是因没有经过完整.系统的.Net方面知识的系统学习,经常被一些在C#老鸟眼里几乎是常识的小知 ...

  10. PowerDesigner(PowerDesigner15.1.0.2850)下载、安装以及破解

    转自:http://www.cnblogs.com/Fonkie/articles/1600662.html 一.先安装PowerDesigner15(PowerDesigner15.1.0.2850 ...