DFS(8)——poj2034Anti-prime Sequences
一、题目回顾
题目链接:Anti-prime Sequences
1,3,5,4,2,6,9,7,8,10
1,3,5,4,6,2,10,8,7,9
No anti-prime sequence exists.
40,41,43,42,44,46,45,47,48,50,55,53,52,60,56,49,51,59,58,57,54
题意:求n到m的一个排列,满足任意连续的k(2<=k<=d)个数的和都不为素数。
二、解题思路
- dfs+素数打表
三、代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 10001;
int ans[1001];
int n,m,d,flag;
int prime[maxn];
bool vis[1001]; void isPrime()
{
/* memset(prime,1,sizeof(prime));
prime[1] = 0;
for (int i=2;i<=10000;i++)
if (prime[i])
for (int j=i+i;j<=10000;j+=i)
prime[j] = 0;*/
for(int i=2;i<maxn;i++)
for(int j=2;i*j<maxn;j++)
prime[i*j]=1;
} void dfs(int now)
{
if(flag) return;
if(now>m-n+1){
flag = 1;
return;
}
for(int i=n;i<=m;i++){
int biaoji = 0;
if(!vis[i]){
for(int j=2;j<=d&&now-j>=0;j++){
if(!prime[ans[now-1]+i-ans[now-j]])
biaoji = 1;
}
if(biaoji) continue;
ans[now] = ans[now-1] + i;
vis[i] = 1;
dfs(now+1);
if(flag) return;
vis[i] = 0;
}
}
} int main()
{
isPrime();
while(cin>>n>>m>>d && !(n==0&&m==0&&d==0)){
memset(vis,0,sizeof(vis));
flag = 0;
dfs(1);
if(flag==0) printf("No anti-prime sequence exists.\n");
else{
printf("%d",ans[1]);
for(int i=2;i<=m-n+1;i++)
printf(",%d",ans[i]-ans[i-1]);
printf("\n");
}
}
return 0;
}
DFS(8)——poj2034Anti-prime Sequences的更多相关文章
- DFS(深度优先)算法编程实践
DFS定义 DFS(Depth-First-Search)深度优先搜索算法,是搜索算法的一种.是一种在开发爬虫早期使用较多的方法.它的目的是要达到被搜索结构的叶结点 . 特点 每次深度优先搜索的结果必 ...
- 拓扑排序+DFS(POJ1270)
[日后练手](非解题) 拓扑排序+DFS(POJ1270) #include<stdio.h> #include<iostream> #include<cstdio> ...
- DFS(一):深度优先搜索的基本思想
采用搜索算法解决问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点.不同的问题需要用不同的数据结构描述. 根据搜索问题所给定的条件,从一个结点出发,可以生成一个或多个新 ...
- 深度优先搜索DFS(一)
实例一 0/1背包问题: 有n件物品,每件物品的重量为w[i],价值为c[i].现在需要选出若干件物品放入一个容量为V的背包中,使得在选入背包的物品重量和不超过容量V的前提下,让背包中的物品 ...
- 万能的搜索--之DFS(二)
(一)深度优先搜索(DFS) 我们先给出深度优先的解决办法,所谓深度优先搜索,在迷宫问题里就是不撞南墙不回头,能走得深一点就尽量深一点.如果碰到了墙壁就返回前一个位置尝试其他的方向.在<啊哈!算 ...
- DFS(二):骑士游历问题
在国际象棋的棋盘(8行×8列)上放置一个马,按照“马走日字”的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次.例如,下图给出了骑士从坐标(1,5)出发,游历棋盘的一种可能情况. [例1] ...
- DFS(四):剪枝策略
顾名思义,剪枝就是通过一些判断,剪掉搜索树上不必要的子树.在采用DFS算法搜索时,有时候我们会发现某个结点对应的子树的状态都不是我们要的结果,这时候我们没必要对这个分支进行搜索,砍掉这个子树,就是剪枝 ...
- DFS(三):八皇后问题
[例1]八皇后问题. 在一个8×8国际象棋盘上,放置8个皇后,每个皇后占一格,要求皇后间不会出现相互“攻击”的现象,即不能有两个皇后处在同一行.同一列或同一对角线上.问共有多少种不同的放置方法? (1 ...
- Chapter1(预科)--C++Prime笔记
心得体会: 因为之前一直在用在学C,因此在看完C++Prime第一章后,就有中在一个培训班中,一个老师用一个简单的项目来带你了解这种语言的特性的感觉.当然这个告诉是在让你脑子固化接受一些点的前提下. ...
随机推荐
- Openresty最佳案例 | 第4篇:OpenResty常见的api
转载请标明出处: http://blog.csdn.net/forezp/article/details/78616660 本文出自方志朋的博客 获取请求参数 vim /usr/example/exa ...
- 还在占用存储的进程lsof grep deleted;
查看僵尸进程 lsof grep deleted; 用于查看已经停止但还在占用存储的进程
- RL 编、解码(EncodedString、DecodedString) - iOS
开发中对文本传输或二进制传输,都需要将传输的对象进行二进制字节的转化操作,所以无异于编.解码便会经常用到的操作; 当然除了这种方式之外,还有一种常用的 Base64,此文中不具体细谈, Base64 ...
- ABAP术语-Distribution Model
Distribution Model 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/25/1052434.html Model that d ...
- PostgreSQL异步主从流复制搭建
1 总体规划 Master库 Slave库 操作系统 CentOS Linux release 7.5.1804 CentOS Linux release 7.5.1804 处理器 1 1 内存 ...
- 关于Navicat连接MySQL 报 Authentication plugin 'caching_sha2_password' cannot be loaded
报错原因: 报这个错是因为MySQL8使用了 caching_sha2_password 加密方式而之前MySQL使用的是 mysql_native_password 加密方式,而你的Navicat不 ...
- 在mac上显示网速的软件——iStat Menus 5:
在mac上显示网速的软件——iStat Menus 5: https://bjango.com/mac/istatmenus/ 注册码: Email: 982092332@qq.com SN: GAW ...
- web前端总结面试问题<CSS&HTML问题>
一个父元素div,一个未知宽度.高度的子元素div [上下左右居中方法总结] //1.position布局,position设为absolute,其他同情景一 2.display:table 父级元素 ...
- Asp.Net Core 生成图形验证码
前几天有朋友问我怎么生成图片验证码,话不多说直接上代码. 支持.NET CORE开源.助力.NET Core社区发展. using System; using System.IO; using Sys ...
- 吐血分享:QQ群霸屏技术教程2017(活跃篇)
热门词的群排名,在前期优化准备充分的情况下,活跃度不失为必杀技. 在<吐血分享:QQ群霸屏技术(初级篇)>中,我们提及到热门词的群排名,有了前面的基础,我们就可以进入深度优化,实现绝对的霸 ...