/*
将1-n个数放在环中,保证相邻的两个数的和是素数
第一个数字永远是1
就这两个约束条件
第一个难点是计算素数;
参考文献:
http://c.biancheng.net/cpp/html/2547.html
http://blog.csdn.net/liukehua123/article/details/5482854 第二个部分是深度递归;
http://blog.csdn.net/a402630999/article/details/7208218
http://www.cnblogs.com/jiangjing/archive/2013/02/04/2891621.html
*/ #include <stdio.h>
#include <stdlib.h>
int n;
int book[],a[];
int isPrime[]; int get_prime()
{
for(int i=;i<;i++)
{
if(!isPrime[i])
{
for(int j=i*i;j<;j+=i)
isPrime[j]=;
}
}
return ;
} int dfs(int x)
{
if(x==n&&!isPrime[a[]+a[n-]])//最后一个已经放进去,并且最后一对首尾也满足条件
{
for(int i=;i<x-;i++)
printf("%d ",a[i]);
printf("%d\n",a[x-]);
return ; }
for(int i=;i<=n;i++)
{
if(book[i]==&&!isPrime[a[x-]+i])//没被使用,且上一个放进去的数和当前打算放进去的数的和是素数
{
a[x]=i;
book[i]=;
dfs(x+);
book[i]=;
}
}
return ;
}
int main()
{
//freopen("input.txt","r",stdin);
int num=;
while(scanf("%d",&n)!=EOF)
{
num++;
a[]=;
get_prime();
for(int i=;i<;i++)
book[i]=;
printf("Case %d:\n",num);
dfs();
printf("\n");
}
return ;
}

HDU-1016-素数环的更多相关文章

  1. HDU 1016 素数环(dfs + 回溯)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 一道很典型的dfs+回溯: 根据题意首先进行初始化,即第一个位置为1,然后进行dfs, ...

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

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

  3. [HDU 1016]--Prime Ring Problem(回溯)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...

  4. HDOJ(HDU).1016 Prime Ring Problem (DFS)

    HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  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. one recursive approach for 3, hdu 1016 (with an improved version) , permutations, N-Queens puzzle 分类: hdoj 2015-07-19 16:49 86人阅读 评论(0) 收藏

    one recursive approach to solve hdu 1016, list all permutations, solve N-Queens puzzle. reference: t ...

  7. hdu 1016

    这是一道考搜索的题目.这道题我用深搜解决了,不过说实话自己对于深搜理解得并不深刻,在这里对于这一题总结一下. 这道题输入为一个实数n,要求输出有1~n这n个数所组成的所有素数环(这是素数环),素数环的 ...

  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. nyoj 488 素数环

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

  10. nyoj 素数环

    算法:搜索 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简便起见,我们规定每个素数环都从1开始.例如,下图就是6的一个素数环. 输 ...

随机推荐

  1. Hibernaate事务管理

    Hibernate使用session时需要继承HibernateDaoSupport对象 HibernateDaoSupport对象中包含默认的getSession()方法,但不可以通过该方法直接启动 ...

  2. 解决angular 与django的冲突

    {% block main %} <script type="text/javascript" src="http://cdnjs.cloudflare.com/a ...

  3. leetcode先刷_Unique Paths II

    那么上述问题,假设这个矩阵堵塞障碍,不能在若干组合前面所用的方法,因为这么多的位置实际上是没有办法的事儿. 还有剩下的唯一合理的解决方案dp该.与最低要求,并且等,从右下角以前突起,对于位置(i, j ...

  4. HTML5新增的拖放API---(一)

    HTML5新增了关于拖放的API,通过API可以让HTML页面的任意元素都变成可拖动的,通过使用拖放机制可以开发出更友好的人机交互的界面. 拖放操作可以分为两个动作:在某个元素上按下鼠标移动鼠标(没有 ...

  5. confirm的用法 一般用于按钮操作时确定是否执行

    <script type = "text/javascript" language = "javascript"> function clear1( ...

  6. contentSize、contentInset和contentOffset

    contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. contentSize: The size of the content vie ...

  7. icon数目

    [UIApplication sharedApplication].applicationIconBadgeNumber = currentBadgeValue.integerValue;

  8. ios 面试题 0

    1.__block和__weak修饰符的区别:  1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型.  2.__weak只能在ARC模式下使用,也只能修饰 ...

  9. ImageView一例

    参考自<疯狂android讲义>2.4节 效果如下: 当点击图上某点时,将之附近放大至下图. 布局文件: <LinearLayout xmlns:android="http ...

  10. Java中关于final关键字

    final关键字,大学时一直没有理解,伴随到工作,郁闷......也可能大学真的没认真去学习 首先,final给人一看英语单词 不就是最终的嘛,最终的什么的呢 ? 小张现在就带大家 学习下..... ...