异常什么是异常Python用异常对象来表示异常情况。遇到错误后,会引发异常。假设异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止运行:>>>1/0Traceback(mostrecentcalllast):File"",line1,in1/0ZeroDivisi...
分类:
编程语言 时间:
2014-08-20 13:50:32
阅读次数:
265
举例说明:S: ababcababaP:ababaKMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O...
分类:
其他好文 时间:
2014-08-20 12:26:52
阅读次数:
208
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节...
分类:
其他好文 时间:
2014-08-19 18:29:35
阅读次数:
278
题目大意:
给出一棵树,求出从起点开始走m长度最后回到起点,所能得到的宝藏的最大价值。
思路分析:
通过一次dfs可以得到的是子树到根节点的所有距离的最大值。
现在的问题就是他走完一颗子树可以去另外一颗子树。
所以在回溯到根的时候要统计其他子树上互补距离的最大值。
dp[i] [j] 表示i为根节点,在i的子树中走j步然后回到i所能拿到的最大价值。
转移方程就是
d...
分类:
其他好文 时间:
2014-08-19 10:59:44
阅读次数:
250
题目链接
题意:给出n到m的范围,求出一个数在前i位数组成的数字能被i整除,如果存在输出这个数,如果不存在,输出-1.
思路:回溯,每次放第i位,然后判断是否符合题意。这题踩着时间过去的2.6s(看了下别人的题解,可以减少取模次数来节省时间)。
代码:
#include
#include
#include
#include
using namespace ...
分类:
其他好文 时间:
2014-08-18 22:05:53
阅读次数:
303
bnu 12639 Cards
dp求期望
区分 全局最优选择 和 当前最优选择。
本题是当前最优选择。
状态表示:
double dp[16][16][16][16][5][5];
bool vis[16][16][16][16][5][5];
状态下参数:
vector up, vector tmp。
so,记忆化搜索 + 回溯
//#pragma warning ...
分类:
其他好文 时间:
2014-08-18 20:33:42
阅读次数:
421
原理 函数里包含函数,即闭包。 包含函数的结果是,子函数会挟持父函数的活动对象。子函数在访问一个变量时,先读自身的活动对象,是否包含此变量,没有从父函数里找,还没有,去祖函数,层层回溯,直到window,还没有就返回undefined。如图: 优点 对象、模块化的基础。缺点 增加额外的内...
分类:
编程语言 时间:
2014-08-18 12:00:44
阅读次数:
199
本文参考Matrix67的位运算相关的博文。顺道列出Matrix67的位运算及其使用技巧 (一) (二) (三) (四),很不错的文章,非常值得一看。 主要就其中的N皇后问题,给出C++位运算实现版本以及注释分析。 皇后问题很经典,就不再赘述问题本身,解决皇后问题,一般采用的都是深搜DFS+回溯.....
分类:
其他好文 时间:
2014-08-17 22:45:32
阅读次数:
231
简单的深度搜索就可以了,看见有人说什么使用并查集,那简直是大算法小用了。
因为可以深搜而不用回溯,故此效率就是O(N*M)了。
技巧就是增加一个标志P,每次搜索到池塘,即有W字母,那么就认为搜索到一个池塘了,P值为真。
搜索过的池塘不要重复搜索,故此,每次走过的池塘都改成其他字母,如'@',或者'#',随便一个都可以。
然后8个方向搜索。
#include
#include
#inc...
分类:
其他好文 时间:
2014-08-15 23:51:10
阅读次数:
519