
递归/DFS
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
poj3889 Fractal Streets(递归)(分治)
题意给你一个原始的分形图,t组数据,对于每组数据,输入3个数n,h,o(n为在第n级,h,o为两个房子的编号) 。求在第n级情况下,编号为h和o的两个点之间的距离*10为多少。其中,第n级分形图形成规则如下:1、首先先在右下角和右上角复制一遍n-1情况下的分形图;2、然后将n-1情况下的分形图逆时针旋转90度,放到左上角;3、最后将n-1情况下的分形图顺时针旋转90度,放到左下角;4、按照上述规则...原创 2018-07-16 09:47:11 · 1318 阅读 · 0 评论 -
欧拉路问题—详解
先区分几个概念欧拉路:从一个点S出发,不重不漏的经过每条边(允许重复经过一个点),最终去到另一个点T,的一条路径。欧拉回路:从一个点S出发,不重不漏的经过每条边(允许重复经过一个点),最终回到这个点S,的一条路径。欧拉图:存在欧拉回路的无向图。这两种路的判定应该不用我讲吧?不会的请翻阅《金牌奥数(五年级)》判定完后就是要求其方案了欧拉路:这个好处理,起点终点都给了只要拼命找就好了。...原创 2018-10-06 21:23:51 · 17859 阅读 · 0 评论 -
树的直径—求法
先给出树的直径的定义:一棵树中任意两点间的路径叫“链”,最长的链称作树的直径。树的直径并没有明确指明是一个距离还是一段路径,其实两者都可以用“树的直径”来称呼。具体求树的直径我们有两种方法,一种用DP,一种用dfs,它们的时间复杂度都是O(N)。 树形DP法设数组D[i]表示从节点i出发往子树方向走的最长距离,F[i]表示以节点i为转折点的最长链。显然ANS=max{F[i]}。仔...原创 2018-10-03 21:12:54 · 1426 阅读 · 0 评论 -
poj2286 The Rotation Game(IDA*)
题目poj2286 The Rotation Game题解IDA*IDA*就是启发式迭代搜索。与A*相同,需要编写一个估价函数,满足f(x)<=g(x),其中f是估价函数,g是实际完成的代价。对于这题,我们以 中心区最小差多少个数字即可使中心8个数字一致 作为估价函数即可,因为每次操作至多使中心相同数字+1,能保证f[x]<=g[x]。接下来做一个迭代加深的搜索即可...原创 2018-09-15 23:14:59 · 300 阅读 · 0 评论 -
poj2248 Addition Chains(迭代加深)
题目poj2248 Addition Chains题解迭代加深当搜索树的分支随深度增大得很快的时候,最适合用迭代加深。设置一个dep限制搜索深度,一旦到达dep立刻回溯。dep逐渐增大,逼近答案。尽管每次都会重复搜索部分分支,因为最终的dep比较小,影响不大。这题正好符合迭代加深的要求:搜索树每个节点扩展的情况很多,且答案节点位置较浅。注意去除冗余状态,优先往大的X扩展。...原创 2018-09-15 22:59:53 · 1615 阅读 · 1 评论 -
CH2401 送礼物(双向搜索)
题目作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了。某神牛有N个礼物,且异常沉重,但是GY的力气也异常的大(-_-b),他一次可以搬动重量和在w(w<=2^31-1)以下的任意多个物品。GY希望一次搬掉尽量重的一些物品,请你告诉他在他的力气范围内一次性能搬动的最大重量是多少。题解双向搜索如果从一个方向搜索,会不断的产...原创 2018-09-15 22:57:21 · 562 阅读 · 0 评论 -
poj3076 Sudoku(DFS+剪枝)
题意用A~P填写一个16*16的数独。题解DFS+超强剪枝1、搜索每一个位置可以填的数,如果只有一个,立刻填上;如果没有可以填的数,立刻回溯。2、枚举一个数字,在每个行\列\宫格中,有没有可以填的地方。如果只有一个,将其填上;如果无法填上,立刻回溯。3、选取一个可能情况最少的格子,枚举其所有情况。4、dfs(k+1),重复执行以上操作。以上1和2的操作是有区别的:1只...原创 2018-08-22 20:10:17 · 1147 阅读 · 2 评论 -
poj2083 Fractal(递归)
题目A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly the same structure at all scales, but the same "...原创 2018-08-01 19:41:41 · 766 阅读 · 0 评论 -
洛谷2444 [POI2000]病毒(AC自动机)(DFS)
题目二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。示例:例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病毒代码段,那么...原创 2018-10-18 13:38:09 · 320 阅读 · 0 评论