#include <stdio.h>
#include <string.h>

int prime[38]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1};
int visit[21]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int result[21]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

void print(int* s, int n)
{
int i;
for(i=0;i<n;i++)
{
if(i) printf(" %d",s[i]);
else printf("%d",s[i]);
}
printf("\n");
}

void dfs(int* s, int* c,int i, int n)
{
int k;
if(!i)
{
s[0]=1;
c[1]=1;
dfs(s,c,i+1,n);
c[1]=0;
}
else if(i<n-1)
{

for(k=2;k<=n;k++)
{
if(!c[k] && prime[s[i-1]+k])
{
s[i]=k;
c[k]=1;
dfs(s,c,i+1,n);
c[k]=0;
}
}
}
else if(i==n-1)
{
for(k=2;k<=n;k++)
{
if(!c[k] && prime[s[i-1]+k] && prime[k+1])
{
s[i]=k;
c[k]=1;
dfs(s,c,i+1,n);
c[k]=0;
}
}
}
else if(i==n)
{
print(s, n);
}
}

int main(void)
{
int n,i;
i=1;
while(scanf("%d", &n)!=EOF)
{
printf("Case %d:\n",i++);

memset(result,0,21);
memset(visit,0,21);

dfs(result,visit,0,n);
printf("\n");
}
return 0;
}

hdu1016的更多相关文章

  1. HDU1016(素数环)

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

  2. hdu1015+hdu1016 都是十分钟以内的深搜题

    hdu1015:给定一串可用序列值,每个字符映射到一个1-26之间的整数,选择五个有序数使得满足 a-b2+c3-d4+e5=target. #include<iostream> #inc ...

  3. HDU1016 dfs

    刷回溯的时候发现我对DFS思路很不清晰,总是做着做着就乱了,刷个水题找找思路. 题意:经典DFS,找出所有的能让1~n的数形成素数环的序列(相邻相加为素数): #include <iostrea ...

  4. hdu1016 Prime Ring Problem

    dfs,用全局数组和变量保存并更新当前状态. 答案可以直接在搜索结束时打印,n为奇数时方案数为0. acm.hdu.edu.cn/showproblem.php?pid=1016 #include & ...

  5. HDU1016 Prime Ring Problem(DFS回溯)

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

  6. HDU1016(bfs)

    import java.util.Scanner;public class Main1016 { public static void main(String[] args) { Scanner ci ...

  7. hdu-1016素数环

    这个题就是给出一个数字n,表示有n个数.编号为1~n. 然后要求我们将这n个数连起来变成一个环,要求随意两个数相加所得值必须为素数. 假设满足条件就将这个环输出来! 这个题:dfs+回溯+推断.然后注 ...

  8. HDU1016 DFS+回溯(保存路径)

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

  9. Hdu1016 Prime Ring Problem(DFS) 2016-05-06 14:27 329人阅读 评论(0) 收藏

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

随机推荐

  1. html表单---学习笔记03

    第8章 表单 8.1 表单标记<form> <form name="表单名称" method="提交方法" action="处理程序 ...

  2. SqlServer创建数据表描述及列描述信息

    SqlServer创建数据表描述及列描述信息 Intro Q: 为什么要创建描述信息? A: 鼠标悬停在对应表和列上时,会出现描述信息,可以提高工作的效率,借助工具我们根据数据表可以生成Model,可 ...

  3. 我是这样使用template.js来异步渲染数据的

    总监的代码用的是define+module.exports,为了效率先没去了解那一块,在github上找了一款功能单一的template.js来使用 https://github.com/yanhai ...

  4. PHP定义静态方法的原则

    与实例逻辑无关 与类逻辑有关 静态类本质上跟纯函数没区别. 1.static方法是类中的一个成员方法,属于整个类,即使不用创建任何对象也可以直接调用! 2.静态方法效率上要比实例化高,静态方法的缺点是 ...

  5. Linux网络管理之net-tools VS iproute2

    查看网卡及IP ifconfig ip link [show] --------- ifconfig -a ip addr show 激活和停止网络接口 ifconfig eth0 up/down i ...

  6. System.Data.DbType和数据库映射关系

    有如下类型的映射对照: System.Data.SqlClient.SqlDbType  System.Data.OleDb.OleDbType System.Data.Odbc.OdbcType S ...

  7. JavaScript中常用的Document了解

    在我们使用js的时候经常会用到document 例如: document.write(""); document.getElementById(''); document.crea ...

  8. mybatis分页控件

    https://my.oschina.net/miemiedev/blog/135516

  9. php 常量定义

    php常量定义及取值  常量在定义时赋值:  不能变 :不能销毁: 具有超全局作用于:常量只能储存标量数据(字符 整型 浮点 ): <?php define("hello", ...

  10. glibc漏洞监测并修复

    [CVE 2015-0235: GNU glibc gethostbyname 缓冲区溢出漏洞 ]全面爆发,该漏洞的产生是Qualys公司在进行内部代码审核时,发现了一个在GNU C库(glibc)中 ...