素数环

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/C

题意:

输入正整数n,把整数1~n组成一个环,使相邻的两个整数之和均为素数。输出时从整数1开始逆时针排列。

同一个环应恰好输出一次。n<=16

Sample Input

6
8

Sample Output

Case 1:
1 4 3 2 5 6
1 6 5 2 3 4 Case 2:
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2 分析:
因为每个环对应一个排列,且排列总数高达2*10^13,为了防止超时用回溯法。
 #include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int vis[],a[];
int n;
bool is_prime(int m)
{ if(m<=) return true;
int y=(int)sqrt(m);
for(int j=;j<=y;j++)
if(m%j==) return false;
return true;
}
void dfs(int cur)
{
if(cur==n&&is_prime(a[]+a[n-])) //递归边界(测试第一个和最后一个数)
{
for(int j=;j<n-;j++)
cout<<a[j]<<' ';
cout<<a[n-]<<endl;
}
else
{
for(int i=;i<=n;i++)
{ if(!vis[i]&&is_prime(i+a[cur-])) //如果i没有用过,并且与前一个数之和为素数
{
a[cur]=i;
vis[i]=; //设置标志
dfs(cur+);
vis[i]=; //清除标志
}
}
}
}
int main()
{
int t=;
while(cin>>n)
{ memset(a,,sizeof(a));
memset(vis,,sizeof(vis));
a[]=;
if(t++) cout<<endl;
cout<<"Case "<<t<<':'<<endl;
dfs();
}
return ;
}
 

素数环 Primg Ring Problem的更多相关文章

  1. UVA524 素数环 Prime Ring Problem

    题目OJ地址: https://www.luogu.org/problemnew/show/UVA524 hdu oj 1016:  https://vjudge.net/problem/HDU-10 ...

  2. 洛谷UVA524 素数环 Prime Ring Problem

    标签:搜索与回溯 题目: 从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数. 算法分析: 非常明显,这是一道回溯的题目.从1开始,每个空位有20种可能,只要填进去的数合法:与前面的数不相 ...

  3. HDU - 1016 Prime Ring Problem 经典素数环

    Prime Ring Problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., ...

  4. 素数环:NYOJ--488--dfs||hdu-1016-Prime Ring Problem

    /* Name: NYOJ--488--素数环 Author: shen_渊 Date: 15/04/17 15:30 Description: DFS,素数打个表,37以内就够用了 */ #incl ...

  5. 1016-Prime Ring Problem,素数环,深搜!

    Prime Ring Problem                                                                                   ...

  6. Prime Ring Problem素数环(HDU1016)

    Prime Ring Problem 思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件.字典序可以采用扩展 ...

  7. uva 524 prime ring problem——yhx

      Prime Ring Problem  A ring is composed of n (even number) circles as shown in diagram. Put natural ...

  8. hdu 1016 Prime Ring Problem(DFS)

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

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

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

随机推荐

  1. ASP.NET 5探险(5):利用AzureAD实现单点登录

    题记:在ASP.NET 5中虽然继续可以沿用ASP.NET Identity来做验证授权,不过也可以很容易集成支持标准协议的第三方服务,比如Azure Active Directory. 其实,在AS ...

  2. linux命令执行返回值(附错误对照表)

    转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结 ...

  3. 注解:【有连接表的】Hibernate单向1->N关联

    Person与Address关联:单向1->N,[有连接表的] Person.java package org.crazyit.app.domain; import java.util.Hash ...

  4. php 常见的问题

    1. this指针错误的引用变量($(php)<->*(c)) $this->inputData right wrong 2. json_encode(array) 不一定按数组关键 ...

  5. Java学习笔记(四)——流程控制语句

    一.条件语句 1.if条件语句 (1)语法: if(条件) { 条件成立时的代码 } (2)执行过程 2.if else语句 if(条件) { 条件成立时的代码 } else { 不成立的代码 } 3 ...

  6. ITOO 第一个任务,新建界面

    最近我们已经接手了我们传承的的ITOO项目,虽然现在还是学习阶段,但是总是还有一些可以完成的东西的.通过需求学习阶段,对照给的原型,逐渐的我们发现了各种各样的问题,有的是根据个人性格有关,有的是对需求 ...

  7. LoadRunner 一些快捷键

    F4   Runtime Setting F5   运行 Ctrl Alt C  注释 Ctrl Alt U  取消注释 Tab  缩进 Shift Tab  取消缩进 Ctrl L  打开参数管理对 ...

  8. HTTP基础09--web(1)

    Web 应用 通过 Web 提供功能的 Web 应用 原本应用 HTTP 协议的 Web 的机制就是对客户端发来的请求,返回事前准备好的内容.可随着 Web 越来越普及,仅靠这样的做法已不足以应对所有 ...

  9. css:删除:×的效果

    常常要使用的显示删除效果: DEMO

  10. wpf,记录一下颜色设置的2中方法,,,

    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color ...