题意

一个由自然数 1…n (n≤18) 素数环就是如下图所示,环上任意两个节点上数值之和为素数。

  1
  / \
   4  2
  \ /
     3

Input

输入只有一个数 n,表示你需要建立一个 1…n 的素数环。
Output

按照字典序输出每一种情况。我们约定顺时针为正向,且第一个元素必须是 1。


 #include <stdio.h>
#include <stdlib.h>
int state[],out[]={,};
int primelist[]={,,,,,,,,,,,};
int num;
int isprime(int n)
{
for(int i=;i<;i++)
if(primelist[i]==n) return ;
return ;
}
void bt(int n)
{
static int j=,k;
int i;
if(n==)
if(isprime(out[]+out[num]))
{
for(k=;k<=num;k++)
printf("%d ",out[k]);
printf("\n");
} for(i=(out[j]+)%+;i<=num;i+=)
{
if(state[i]==) continue;
if(isprime(out[j]+i))
{
out[++j]=i;
state[i]=;
bt(n-);
j--;
state[i]=;//back
}
} }
int main()
{
scanf("%d",&num);
int n=num;
if(n%==) bt(n);
return ;
}

state数组记录数是否已经被取用,已取过的就不取。

回溯,注意递归的结束条件,以及递归返回的时候能够返回之前的状态

EOJ 1114 素数环的更多相关文章

  1. nyoj 488 素数环

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

  2. nyoj 素数环

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

  3. nyoj素数环

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

  4. ny488 素数环

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

  5. DFS搜索题素数环

    素数环: 输入整数1,2,3,4,5,···,n组成一个环,使得相邻两个整数之和均为素数. 输出时从整数1开始逆时针排列.同一个环应恰好输出一次.n<=16. Sample: input: 6 ...

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

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

  7. ACM_素数环(dfs)

    Problem Description: 如图所示,环由n个圆组成. 将自然数1,2,...,n分别放入每个圆中,并且两个相邻圆中的数字总和应为素数. 注意:第一个圆圈的数量应该始终为1. Input ...

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

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

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

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

随机推荐

  1. 简单ajax库

    function TuziAjax(reqType,url,fnoK, fnFail) { var xmlHttp = null; if (window.XMLHttpRequest) { xmlHt ...

  2. python练习--1、简易登录接口

    function:用于实现简单的用户登录接口. description:用户信息存储于字典中,增加用户需手动写入代码中.最多可以尝试登录9次,首次使用会先在程序目录下创建锁文件.若在用户栏输入quit ...

  3. amcharts简单demo(仪表盘)

    最近项目中展示数据有用到amcharts,一个小demo例子. <script src="<%=basePath%>amchart/amcharts.js" ty ...

  4. 查看SqlServer连接所使用的端口号

    最近一个项目里用到了一个插件,在配置时发现连接数据库使用的是JDBC,输入URL时用到了端口号.印象中在使用Sqlserver时貌似没有提到端口号,在网上查阅了一下,记录下来省的忘了 方法是通过内置的 ...

  5. Python语言之常用函数

    1.input(),raw_input() input() = eval( raw_input() ) 其中raw_input()将所有的输入当做字符串处理. eval(str [,globals [ ...

  6. Mysql分组求和&LIMIT

    分组求和mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY na ...

  7. Step by Step 开发dynamics CRM

    这里是作为开发贴的总结. 现在plugin和workflow系列已经终结. 希望这些教程能给想入坑的小伙伴一些帮忙. CRM中文教材不多, 我会不断努力为大家提供更优质的教程. Plugin 开发系列 ...

  8. Java RMI之HelloWorld经典入门案例

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...

  9. 15.3 Task 异常

    1. 在等待时拆包异常 在等待任务时,任务出错或取消都将抛出异常,但并不是 AggregateException .大多情 况下为方便起见,抛出的是 AggregateException 中的第一个异 ...

  10. MySQL高级 之 explain执行计划详解

    使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执行计划包含的信息 其中最重要的字段为:i ...