http://acm.hdu.edu.cn/showproblem.php?pid=4607 题意 一颗n个顶点的树,现在只想访问其中k个,问最短路径长度为多少。 分析 首先,最短的路径当然是一条链。那么我们需要求树的直径。求法:先从任意一点dfs到最深处v,再以v为根深搜,得到的最长路径便是树的直 ...
分类:
其他好文 时间:
2018-07-09 00:37:37
阅读次数:
166
Jack拆炸弹 Jack拆炸弹 Time Limit: 2000/1000ms (Java/Others) Time Limit: 2000/1000ms (Java/Others) Problem Description: 在一个由n*n个格子组成的监狱里被恐怖份子安置了一个定时炸弹。其中,连续的 ...
分类:
其他好文 时间:
2018-07-07 13:44:30
阅读次数:
206
【题目链接】 http://poj.org/problem?id=2248 【算法】 搜索剪枝 剪枝1 : 优化搜索顺序,从大到小枚举 剪枝2 : Ai + Aj可能相等,只需搜一次即可 剪枝3 : 通过观察发现 : m <= 10,可以用迭代加深搜索 【代码】 ...
分类:
其他好文 时间:
2018-07-04 16:45:56
阅读次数:
203
【题目链接】 http://poj.org/problem?id=1011 【算法】 深搜剪枝 首先我们枚举木棍的长度i,那么就有s/i根木棍,其中s为木棍长度的总和,朴素的做法就是对每种长度进行搜索,然而这样是会超时的,考虑优化 : 优化1 : 优化搜索顺序,将这些木棍的长度从大到小排序,搜索时按 ...
分类:
其他好文 时间:
2018-07-03 16:44:49
阅读次数:
162
"17. 电话号码的字母组合" 暴力即可,深搜 or 迭代 ...
分类:
其他好文 时间:
2018-07-01 17:00:30
阅读次数:
184
递归应该是初学者最难啃的一块骨头,很多人也是半懂不懂,结果学到很深的境地也会因为自己基础不好,导致发展太慢。 因此我希望初学者还是深刻理解递归及深搜,这样以后再继续向前学。 递归,我们把这个字分为两个部分: 递: 所谓递即向下传递,换一种理解方式就是间接或直接地调用自己本身,且递归通常把一个大型复杂 ...
分类:
其他好文 时间:
2018-06-26 20:46:19
阅读次数:
155
C. Candies PS:大概是又傻了,读题啊。 D. Bishwock PS:又FST了,读题的锅。从头依次寻找合法的位置放就行了。因为所有能放的位置在贪心的过程中都会被找到,故一定是最优解。 E. Bus Number PS:去重排列的公式得知道。然后暴力枚举,可以用10个循环,也可以深搜。写 ...
分类:
其他好文 时间:
2018-06-25 16:47:24
阅读次数:
180
题意:已知一个集合A含有M个元素,输出含有N个元素的集合A的所有子集 思路:深搜 代码: ...
分类:
其他好文 时间:
2018-06-23 22:45:51
阅读次数:
214
题目链接:http://poj.org/problem?id=2386 思路很简单,就是一个标准的DFS,不断从W开始遍历,每遍历一个W就改成".",然后朝八个方向深搜,要注意边界。如果八个方向都搜完了,一次深搜就结束了。 那么进行几次深搜就意味着有几个连通的区域。 ...
分类:
其他好文 时间:
2018-06-22 20:35:41
阅读次数:
169
预备知识 深搜(DFS)广搜(BFS) 定义 对一个有向无环图(Directed Acyclic Graph 简称DAG) G进行拓扑排序, 是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 通常,这样的线性序列称为满足拓扑次序( ...
分类:
编程语言 时间:
2018-06-18 11:00:03
阅读次数:
202