码迷,mamicode.com
首页 >  
搜索关键字:深搜    ( 922个结果
Hdu 2196 Computer (树形dp)
题目大意: 求出每一个结点距离叶子节点的最大距离。 思路分析: 假设1为树的根。 通过一遍dfs 可以求出每个节点到儿子节点上的叶子节点的最远距离。 然后我们要做的就是如果更新答案。 问题就是如果我们开始求的最大值本来就是一个儿子更新的,如果再深搜的话又会造成重复更新。 所以就记录两个值,最大值和次大值。 然后不断更新这两个值。 #include #includ...
分类:其他好文   时间:2014-08-18 18:44:32    阅读次数:225
HDU 1016 Prime Ring Problem
在刚刚写完代码的时候才发现我以前交过这道题,可是没有过。后来因为不理解代码,于是也就不了了之了。可说呢,那时的我哪知道什么DFS深搜的东西啊,而且对递归的理解也很肤浅。这道题应该算HDU 2610 Sequence one的简化版,判重也非常简单。其他也没有什么好说的了,直接上代码吧。 1 //#d...
分类:其他好文   时间:2014-08-18 00:07:03    阅读次数:207
N皇后问题(位运算实现)
本文参考Matrix67的位运算相关的博文。顺道列出Matrix67的位运算及其使用技巧 (一) (二) (三) (四),很不错的文章,非常值得一看。 主要就其中的N皇后问题,给出C++位运算实现版本以及注释分析。 皇后问题很经典,就不再赘述问题本身,解决皇后问题,一般采用的都是深搜DFS+回溯.....
分类:其他好文   时间:2014-08-17 22:45:32    阅读次数:231
UVA1374 - Power Calculus(迭代深搜+剪枝)
题目链接 题意:给出x和正整数n,问最少需要几次乘除法 可以得到n = x^m 思路:其实是关于指数的操作,即从1到m最少的步数。我们可以先确定最少步数m,然后进行迭代,迭代的过程也就是判断通过相加减所得到的数可以在m次操作中等于n,如果可以的话,m即为最小步数,如果不行的话,m++,进行下一次迭代。 代码: #include #include #include...
分类:其他好文   时间:2014-08-17 21:27:12    阅读次数:204
hdoj 2553 N皇后问题 【DFS】
题意:。。。 典型的深搜,就是处理对角线的时候有些意外。 代码(注释掉的就是深搜,因为我不打表的话 TL): #include int c[11], n, ans; int res[10] = {1, 0, 0, 2, 10, 4, 40, 92, 352, 724}; /*void dfs(int cur) { if(cur == n) { ++ans; return ; } ...
分类:其他好文   时间:2014-08-17 15:36:32    阅读次数:146
UVA529- Addition Chains(迭代+DFS)
题目链接 题意:给一个数n,要你找出一个以n为结尾的序列,使得这个序列中的任意一个数(1除外),能由序列中的两个数(可以相同)相加得到。求最短的序列,如有多种组合,任意输出一个。 思路:要迭代+DFS,首先我们可以得到要使序列尽量短的话,那么n最好是能由n/2相加得到,所以我们就可以得到最小深度depth,以depth为基础,进行深搜,如果满足的话就输出,如果不符合的话,再...
分类:其他好文   时间:2014-08-16 13:52:54    阅读次数:253
POJ 2386 Lake Counting 搜索题解
简单的深度搜索就可以了,看见有人说什么使用并查集,那简直是大算法小用了。 因为可以深搜而不用回溯,故此效率就是O(N*M)了。 技巧就是增加一个标志P,每次搜索到池塘,即有W字母,那么就认为搜索到一个池塘了,P值为真。 搜索过的池塘不要重复搜索,故此,每次走过的池塘都改成其他字母,如'@',或者'#',随便一个都可以。 然后8个方向搜索。 #include #include #inc...
分类:其他好文   时间:2014-08-15 23:51:10    阅读次数:519
poj 1321 棋盘问题 【DFS】
题意:。。。 策略:深搜. 仔细分析我们发现,我们只需要对列进行标记,对于行我们考虑放棋子还是不放就行了。 代码: #include #include char s[10][10]; int n, m; int vis[10]; int ans; void dfs(int cur, int step) { if(step == m){ ans ++; return; } if...
分类:其他好文   时间:2014-08-15 09:30:27    阅读次数:153
poj 3009 Curling 2.0 【DFS】
题意:从2出发,要到达3, 0可以通过,碰到1要停止,并且1处要变成0, 并且从起点开始沿着一个方向要一直前进,直至碰到1(或者3)处才能停止,(就是反射来反射去知道反射经过3).如果反射10次还不能到达3,就输出-1. 策略:深搜。 易错点,方向不容易掌握,并且,出题人把n, m顺序反了。 代码: #include #include int map[25][25]; int ans, n...
分类:其他好文   时间:2014-08-14 23:55:36    阅读次数:236
POJ 1979 Red and Black
题目链接:http://poj.org/problem?id=1979思路:典型的搜索题,个人感觉广搜深搜皆可以,我用深搜做的。代码: #include using namespace std;int startx,starty;//开始的位置 int n,m;//行数和列数 char e[21]....
分类:其他好文   时间:2014-08-14 10:29:28    阅读次数:245
922条   上一页 1 ... 83 84 85 86 87 ... 93 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!