刷回溯的时候发现我对DFS思路很不清晰,总是做着做着就乱了,刷个水题找找思路。

题意:经典DFS,找出所有的能让1~n的数形成素数环的序列(相邻相加为素数);

 #include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <sstream>
#include <algorithm>
#define Max 2147483647
#define INF 0x7fffffff
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
#define repu(i, a, b) for(int i = (a); i < (b); i++)
const double PI=-acos(-1.0);
#define N 10010
using namespace std;
bool pri[N];
int p[N];
int prim()
{
memset(pri, true, sizeof(pri));
for(int i = ; i <= sqrt( +0.5); i++)
if(pri[i])
for(int j = i << ; j <= N; j += i)
pri[j] = false;
}
int n;
bool vis[N];
void dfs(int pos,int m)///p[pos-1] = m
{
if(pos == n+ && pri[p[n]+])
{
repu(i,,n)
printf("%d ",p[i]);
printf("%d\n",p[n]);
return ;
}
int i = ;
repu(i,,n+)
{
if(pri[m + i] && !vis[i] )///符合条件
{
vis[i] = ;
p[pos] = i;
dfs(pos+,p[pos]);
vis[i] = ;
}
}
}
int main()
{
//init();
prim();
memset(vis,,sizeof(vis));
int kase = ;
while(~scanf("%d",&n))
{
printf("Case %d:\n",kase++);
p[] = ;
p[n+] = ;
dfs(,);
if(kase)
printf("\n");
}
return ;
}

HDU1016 dfs的更多相关文章

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

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

  2. HDU1016 Prime Ring Problem(DFS回溯)

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

  3. 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 ...

  4. HDU1016 素数环---(dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1016 Sample Input 6 8   Sample Output Case 1: 1 4 3 2 5 6 ...

  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【简单递归.DFS】

    题意:一个环,相邻相加是素数. 思路: 直接深搜就好了.. output limit exceed 了好几发... 因为那个while里面的scanf前面的"~" 后来搜了outp ...

  7. hdu1016 Prime Ring Problem【素数环问题(经典dfs)】

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

  8. HDU1016(素数环)

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

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

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

随机推荐

  1. js图片放大镜

    <!doctype html><html><head><meta charset="utf-8"><style>#sma ...

  2. [HIHO1062] 最近公共祖先·一(lca, 并查集, 二分, 神trick)

    题目链接:http://hihocoder.com/problemset/problem/1062 题意裸,有个trick,导致我当年做的时候一直在WA... 那就是出现这种没有出现在关系中,但是依然 ...

  3. 【springMVC】简单的前后端数据交流

    最最常见两种,一则返回视图模板(文档),二则为json数据.就使用一个源代码文件来看看springmvc是怎么做到的. 1.UserController.java源代码文件 (这里额外的使用了fast ...

  4. [bzoj3555]企鹅QQ(hash)

    3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1645  Solved: 616[Submit][Statu ...

  5. Scrum Meeting 7-20151209

    任务安排 姓名 今日任务 明日任务 困难 董元财 服务器购买记录接口 请假(编译攻坚) 无 胡亚坤 发布记录和购买记录 请假(编译攻坚) 无 刘猛 完成Scrum Meeting 请假(编译攻坚) 无 ...

  6. openfire聊天消息记录插件关键代码

    package com.sqj.openfire.chat.logs; import java.io.File; import java.util.Date; import java.util.Lis ...

  7. JQuery_高级选择器

    在很多特殊的元素上,比如父子关系的元素,兄弟关系的元素,特殊属性的元素等等. 在早期 CSS 的使用上,由于 IE6 等低版本浏览器不支持,所以这些高级选择器的使用也不具备普遍性,但随着 jQuery ...

  8. GeoHash

    查找是我们经常会碰到的问题,以前我做过一个这样的算法,在有序的数列(80万条左右),这批数据是根据维度由小到大排序的,寻找已知数据的位置,并且所相应的运算,由于这个算法要在嵌入式系统中做,如果一次在内 ...

  9. ubuntu1404服务器版中设置root用户

    刚安装完没有设置root用户 sudo passwd root 根据提示输入密码,ok . 关闭服务器: shutdown -h now

  10. int转string

    #include<iostream> #include<sstream> #include<string> using namespace std; int mai ...