
DFS
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
poj1190生日蛋糕
#include#include#include#include#include#include#include#includeusing namespace std;#define INF 10000000#define min(a,b) (a<b?a:b)int n,m,best,minv[22],mins[22];void Init(){ int i; m转载 2013-07-31 16:30:51 · 754 阅读 · 0 评论 -
Ural1298 Knight 经典DFS
这个题目很想当时刚开始学BFS时所做的一道题目,我记得是POJ,的也是马走日这题目就是给了你一个n * n的棋盘,从(0,0)点出发,马走日的方式,是否可以将棋盘走遍,而且每个格子只能走一次那天先是写了bfs,但是记录方式开了个三维的,最后超时,没办法改为dfs,然后就是一直WA,或者RE实在不明白是为什么,补题已经隔了两天了,我实在没有好的办法啊,最后又敲了一次,发现过了!找 之前的代码原创 2015-03-09 23:43:40 · 810 阅读 · 0 评论 -
HDU4474,POJ1465,HDU1226 一类数位限制倍数的BFS问题
HDU4474,POJ1465,HDU1226,URAL1495这些题目,首先是URAL1495,那天做这个第一个想法就是数位dp,但是没有推测出来,有段时间没做这个了,呃~然后采用了dfs的手法进行记忆化搜索,结果WA出翔了,搞了一下午,而后看了题解用数位DP解决了,但是也发现了一种比较稳妥的方法,比较清晰,而且网上刚好有个巨巨整理出了这一系列可以戳这里 http://www.xuebuy原创 2015-02-03 09:35:49 · 874 阅读 · 0 评论 -
HDU5115 Dire Wolf 区间DP 记忆化搜索
题意:举个例子,就跟DOTA里的狼BB一样,自身有攻击力,还有光环可以提升同伴的攻击力,狼站成一排,光环只能提供给相邻的狼,打掉一直狼需要打一下,同时它也会打一下,这样你的扣血量其实就等于该狼的攻击力方程很好想,dp[i][j]代表 打掉区间[i,j]内的狼所需最少血量,这里是闭区间,后来看到是200*200 ,那么就懒得去想方程转移了,直接记忆化搜索就可以了,注意点是 一个狼被宰了,原创 2014-12-05 21:47:35 · 868 阅读 · 0 评论 -
CodeForces 396C 树状数组 + DFS
这题目一开始看到了就想到了线段树或者树状数组,但是对于一个节点的所有子节点加权有所疑惑,后来看到根树这个条件,就像到了 那么1号点肯定在第一层,那么建立单向边往下搜,然后记录一下 每一个节点所在的 层,最后 两个节点 相差的 层数就知道了,就容易加权处理了,然后就开始建立数组了,后来一直爆错,后来发现 是范围有问题,这样直接建立是错的,因为不知道具体范围,数字太大了, 所以参考了一下http:原创 2014-11-07 20:56:55 · 1024 阅读 · 0 评论 -
CodeForces 374C 记忆化搜索
题目题意:Inna喜欢Dima,所以他希望在一张n * m的 每个单元格印有'D'或者'I'或者‘M’或者‘A’ 的桌子上 尽量多的走出 某个路径 中包含DIMA 这个单词数量最多,必须从'D'开始走,并且'D'只能到'I',然后‘I’只能到'M',然后‘M’只能到‘A’,然后'A'只能到'D',这样走,若走不出DIMA这个单词 输出 poor dima若存在环的话 输出原创 2014-11-27 23:41:43 · 1195 阅读 · 0 评论 -
HDU2452 Navy maneuvers 记忆化搜索
这题目意思能忍?读了半年,乱七八糟的记忆化搜索 拖拖的,dp[i][0]代表以获得最小值为目标的船以i为起点,dp[i][1]代表以获得最大值为目标的船以i为起点,接下来暴力枚举入度为0的点为起点,开始记忆化搜索,const int N = 100000 + 55;int dp[N][2];int value[N];int degree[N];vector G[N];原创 2014-10-12 22:01:48 · 906 阅读 · 0 评论 -
HDU5012 Dice 记忆化搜索
写错了,坑了自己好久,直接广搜可能更好,我害怕超时,记忆化搜索了一下 ,写的时候小地方写错了,int dp[7][7][7][7][7][7];int su,sd,sl,sr,sf,sb;int eu,ed,el,er,ef,eb;void init() { memset(dp,-1,sizeof(dp));}bool input() { while(ci原创 2014-09-14 17:52:52 · 1101 阅读 · 0 评论 -
ZOJ 3811
亏大了,当时没做,被另一道题目题意给坑了,其实把他建成一个双向图,首先l 看题解多数使用了并查集,不过也有几个题解的的思路 差不多也是这个样子,解法挺多的int t;int n,m,k;int nnum[100000 + 55];bool vis[100000 + 55];bool flag[100000 + 55];vector G[100000 + 55];set原创 2014-09-12 20:46:40 · 773 阅读 · 0 评论 -
Codeforces Round #224 (Div. 2) D 暴力搜索加记忆化
题意读了半年,英语太渣,题意是摆两个棋子在棋盘上作为起点,但是起点不能在#上,然后按照图的指示开始走, 右 ^上 v下,走的时候只能按照图的指示走,如果前方是 #的话,可以走进去,但是 走进去之后便不能再走了,走的途中两个棋子不能相碰,但是最终都走到同一个#里是没事的,并且若是能走 无限步的话 输出 -1, 例如 > 一开始被输出-1给困住了,因为除了 .> <这样以外 还可以刚原创 2014-08-11 21:13:47 · 879 阅读 · 0 评论 -
HDU1429 胜利大逃亡(续) BFS +简单状压
把手中持有的钥匙状态状压一下即可,然后vis访问标记的时候,开个三维,多一维即为当前持有钥匙状态,这样就能祛除重复标记困难走点的问题,跟网络赛那题很像,网络赛的更难点,这个简单点int n,m,t;int sx,sy,ex,ey;char mp[20 + 55][20 + 55];bool vis[20 + 5][20 + 5][(1<<10) + 5];int dir原创 2014-09-22 23:14:37 · 774 阅读 · 0 评论 -
Coder-Strike 2014 - Round2 D 2048 (DP 记忆化搜索)
参考了 http://blog.youkuaiyun.com/keshuai19940722/article/details/24723417 他的开头的一点小分析,当然还有题意啦,难得看到CF的题目有点长,看了好久加YY才弄出题意,但是还是没有推出来状态转移方程,因为题目说向开头移动,我倒着推没有推出来,于是 正着尝试了一把 记忆化搜索,一路搜索过来遇到的只有0,2,4而已,扫到当前一格 还得考虑当原创 2014-09-10 18:53:13 · 833 阅读 · 0 评论 -
Code Forces 448C Painting Fence 贪心递归
补题咯,最近好多题要补啊,各种比赛被虐,来不及补题了都,这题 是长记性的题目,不算难吧,比较灵活考基本功的,看题目每次大家都具有的可以先去掉,然后分段一层一层的处理,这个贪心思想画一画就能够发现了,接下来就是怎么应用了,直接用深搜递归就可以了,当时写错了,还是漏了一些,现在补题才发现,长记性咯http://codeforces.com/contest/448/problem/C原创 2014-07-18 21:09:25 · 875 阅读 · 0 评论 -
Codeforces 448E Divisors
数学型的题目吧,一开始太过于想去构造,发现不行,现在一直忙着补题,终于补到了这道,特意去看了后面很大的案例,发现了后面全是1,想想应该是数学思维型题目,对于1肯定要特殊处理,而且 在K超过 100000的情况下肯定全为1,因为每一次 k从0开始 k若比原来大1的话,肯定答案中会比原来多一个1,所以10^5那肯定就有10^5个1 了,若k为0肯定就是n本身了,剩下的部分 对于一开始就把n给分解,当然原创 2014-07-22 22:32:42 · 1137 阅读 · 0 评论 -
HDU4499 Cannon DFS 回溯的应用
题意就是给你一个n*m的棋盘,然后上面已经有了 棋子,并给出这些棋子的坐标,但是这些棋子是死的就是不能动,然后让你在棋盘上面摆炮,但是炮之间不能互相吃,吃的规则我们斗懂得 炮隔山打嘛,问你最多能放几个炮肯定是搜索了,n,m最大才5,可能挺久没做了,对于回溯反而把握不好了,写了好久调试了好久,才过#include #include #include #include原创 2014-06-29 20:12:23 · 1149 阅读 · 0 评论 -
HDU2840&&POJ2205 Self-Replicating Numbers 深搜暴力大数香橙
这题目HDOJ上过的人连100个都没有,所以不太敢直接暴力,后来学长们 暴力过了,不愧是学长,就是牛逼,然后学长告诉我 符合题目条件的数不多,所以可以暴力,倒不是因为题目数据水的缘故才能暴力的题意:给你b,n,找出一个b进制的 长度为n的数, 这个数 它自身平方的得到的数 的后缀能与本身重合即可,举个例子9376^2 = 79909376 没有太多的想法,直接DFS暴原创 2014-04-20 21:51:58 · 1416 阅读 · 0 评论 -
HDU4771 Stealing Harry Potter's Precious bfs+dfs
杭州站的B题,昨天下午做了一下,现在发个题解,最多也就四个宝物,所以 直接暴力模拟就可以了,但是一开始一直wa,案例自己写了几十个都过了,没办法后来改成了 dfs来枚举#include#include#include#include#include#include#include#include#include#include#include#include原创 2013-11-10 20:06:09 · 1078 阅读 · 0 评论 -
Uva12291 深搜
题意是给一个母图,再给一个子图,看看母图是否可以刚好由两个子图构成,注意是 刚好两个,而且子图不能翻转 只能平移,一开始就觉得用深搜做比较好但是对于建图觉得很烦躁,想了很久,看到 n,m的范围,所以应该建图建的暴力一点,x:0-m ,y:0-m到n,这样左右上下平移就没有问题了,接下来 直接亮代码,写的可能不是很节俭,凑合着看吧,顺便送了几个案例#include#include#incl原创 2013-10-05 19:44:48 · 834 阅读 · 0 评论 -
URAL 1152 False Mirrors 搜索|记忆化搜索|状压
n个阳台,每个阳台上有怪物,第一个阳台跟最后一个相邻,每次攻击其中一个阳台,那么相邻的两个也会被破坏掉,但是你攻击一次,剩下的没有被消灭的怪兽就会攻击你,问消灭所有怪兽 所受伤害值最少是多少一开始就想到了DFS,于是写了一发,居然超时了,然后看到n只有20,于是想到了状态压缩+记忆化搜索,还是比较清晰的推起来,然后31ms过了,后来过了又去看了一下网上题解,呵呵,发现 dfs也是可以的原创 2015-03-23 13:54:35 · 737 阅读 · 0 评论