题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016

题目描述:1~n的整数排成一个环,首尾相连,相邻的两个数相加是素数,输出满足的排列,1开头输出,字典序;

题目要点:dfs

本题安顺序dfs,可以满足字典序,对于每一个要放进去的数要考察两个,一、是否放过了。二、是否和前面相邻的数构成素数;

所以第一,开一个数组,记录该数是否被放过;第二,写一个判断素数的函数;

代码如下:

(当只有一个元素的时候比较特殊,要考虑到)

 #include<stdio.h>
#include<string.h>
int n,b[],a[],t=;//b数组用来放数;a数组用来记录;
int prime(int x)
{
for(int i=;i<x;i++)
{
if(x%i==)
return ;
}
return ;
}
void dfs(int cur)//cur记录的是这一次放大色是第几个数;
{
if(cur>n) //注意这里一直放到第n+1个,然后比较1和b【n】是否是素数;
{
if(prime(+b[n])){
printf("%d",b[]);
for(int i=;i<=n;i++)
{
printf(" %d",b[i]);
}
printf("\n");
}
}
else
{
for(int i=;i<=n;i++)
{
if(a[i]==&&prime(i+b[cur-]))
{
b[cur]=i;a[i]=i;
dfs(cur+);a[i]=;
} }
}
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
printf("Case %d:\n",t++);
memset(a,,sizeof(a));
b[]=;//一开头是固定的,直接赋值就好了。
if(n==)//如果只有一个数,算是符合要求直接输出就好;
{
printf("1\n\n");
continue;
}
dfs();//从2开始dfs
printf("\n");
}
return ;
}

hdoj--1016<dfs>的更多相关文章

  1. hdoj - 1258 Sum It Up && hdoj - 1016 Prime Ring Problem (简单dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1258 关键点就是一次递归里面一样的数字只能选一次. #include <cstdio> #inclu ...

  2. Prime Ring Problem HDU - 1016 (dfs)

    Prime Ring Problem HDU - 1016 A ring is compose of n circles as shown in diagram. Put natural number ...

  3. hdoj 1016 Prime Ring Problem

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

  4. HDOJ 1312 DFS&BFS

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. HDOJ 1026 dfs路径保存

    #include<cstdio> #include<cstring> #include<cmath> ][]; #define inf 0xffffff int n ...

  6. HDOj 1010 DFS优化

    #include<cstdio> #include<cstring> ]={,,,-}; ]={,,-,}; ][]; int x1,y1,x2,y2; int step; i ...

  7. HDU 1016 DFS

    很简单的深搜 只要看出来是深搜... 注意判断最后一点是否与加一为质数 #include<stdio.h> #include<string.h> #include<alg ...

  8. HDOJ 2212 DFS

    Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every d ...

  9. HDOJ 1016 Prime Ring Problem素数环【深搜】

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

  10. HDOJ 1427(dfs) 速算24点

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1427 思路分析: 题目要求判断是否存在一种运算组合使得4个数的计算结果为24,因为搜索的层次为3层,不 ...

随机推荐

  1. IOS CoreData 多表查询(下)

    http://blog.csdn.net/fengsh998/article/details/8123392 在iOS CoreData中,多表查询上相对来说,没有SQL直观,但COREDATA的功能 ...

  2. 使用控件的Tag属性传递信息

    实现效果: 知识运用: Control类的Tag属性 //获取或设置包含 有关控件的数据的对象 public object Tag {get;set;} 实现代码: private void Form ...

  3. opencv中mat的type

    type表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数),由type()返回,但是返回值是int型,不是OpenCV预定义的宏( ...

  4. mysql group by的特殊性

    SELECT create_year, userno , sum(sal) FROM user GROUP BY userno 以上语句,在oracle 或sql server肯定是语法错误  因为g ...

  5. Bootstrap历练实例:交替的进度条

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  6. 新手 WordPress主题制作全过程

    WordPress主题制作全过程(一):基础准备 前言: 我想大多数使用WordPress的朋友都喜欢去尝试新的主题,但是换来换去,总是找不到那么一款适合自己的,让人很郁闷.于是很多人萌生了修改现有主 ...

  7. C++实现Singleton模式(effective c++ 04)

    阅读effective c++ 04 (31页) 提到的singleton设计模式.了解一下. 定义: 保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享. 应用场景: 比 ...

  8. redis学习笔记(3)

    redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔 ...

  9. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 x 无效

    在启动Tomcat项目时,控制台报错:nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSeque ...

  10. wdcp 使用说明总结(持续更新中。。。)

    wdcp 使用说明总结(持续更新中...) 1.移动文件时,如果是上一层,直接填写../即可