随笔分类 - 疑难杂谈以及总结
摘要:一.递推 学的第一种方法就是这个,但是个人认为这种方式在某些题上比较难实现,比如:Blance Number(HDU-3709).这道题本蒟蒻没想出怎么用递推预处理,反而是记忆化搜索的方式更容易懂. 以HDU-2089为例,本题的递推还是比较好实现的. 代码 二.记忆化搜索 这种方法就比较烂大街了,
阅读全文
摘要:最短路算法整理 1.Dijkstra 算法 先讲讲朴素的Dijkstra算法的思路.朴素的Dijkstra算法先将起点入队.然后找到一个起点距离最近的点.再用这个点去更新其他所有的点.一共有多少个点就进行多少次迭代.因为每次找到一个用于更新距离的点.它的最短距离就已经确定了. 核心代码: #incl
阅读全文
摘要:bfs搜索模型. 最常见的模型:flood fill. 一般用于计算连通块.需要标记哪些点走过,所以dfs求flood fill时不需要恢复现场. bfs通常应用:最短路 根据bfs的特性第一次走到该点就是最短距离. 多源bfs.多个起点,求到达其他点的最短距离.思想是建立超级源点.求超级源点到其他
阅读全文
摘要:bfs也用于求最短路的问题.但是一般bfs有个限制是边权必须相同.这样才能保证第一次到达此点,此点的距离就是最短距离(即入队的时候最短距离已经确定了) 证明: bfs队列里符合单调性和二段性. 一般用数学归纳法证明.当队列里只有一个点是正确的.假设队列里有n个点,队列与源点距离分布为 x x x..
阅读全文
摘要:1. 树的重心:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 性质: 树中所有点到重心的距离和是最小的,一棵树最多有两个重心(比如就两个点连个边). 把两棵树通过加一条边得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上. 一棵
阅读全文
摘要:AcWing 734. 能量石 和 HDU 1074 Doing Homework 以及POJ 陪审团的区别 这3题属实看得我有点迷惑与HDU不同的是,这道不允许使用结构体dp的题都不是要求全部选完,只是选部分.HDU要求作业必须全部做完.而且time与cost可以分别记录.原因不知道是否是在这.
阅读全文
摘要:暂时的总结 01背包:n种物品和体积为m的背包,每种物品只能选1次,问能装的最大价值: f[i][j] = f[i-1][j-v]+w,f[i-1][j](以最后一步选与不选来划分集合) 观察式子可知,f[i][j]只能由f[i-1]的状态转移而来,因此只需要保存f[i]与f[i-1]两个状态. 0
阅读全文