12 2022 档案
摘要:树形DP没有固定的模板,见多了题,就知道该如何分析,如何设计状态了。所以该篇博客以例题来进行讲解。 ##树的直径 本题是一道树的直径板子题。 求树的直径有两种方法: (1)两遍 dfs。(2)树形DP。 时间复杂度都是 ,但两遍dfs需要满足树中不存在负边。 这里我们用树形DP来解决该题。
阅读全文
摘要:##一.问题引入 扫描线 求 个边平行于坐标轴的四边形的面积并。 ##二.算法思路 我们将图分成若干段(下图每一段的面积已用彩笔标出),就像拿一根竖直的线从左往右扫一遍,如图: 面积并就等于这些段的面积和。 那每一段的面积怎么求呢? 设 表示第 段在 轴上的长度(
阅读全文
摘要:类型 一.稍微变形的模板 例:1.P1576 最小花费 松弛操作改了一点点。 点击查看代码 if(dis[v]>dis[u]/(1-0.01*w)){ dis[v]=dis[u]/(1-0.01*w); q.push(make_pair(dis[v],v)); } 2.P3905 道路重建 把好路的
阅读全文
摘要:什么是点覆盖问题? 就是在树上选几个点,覆盖(一个点可以覆盖其相连的边或与其距离不超过 的点,根据题意具体分析)一些点或边,求最小代价。 例题 战略游戏 题意 一棵无根树,一个点可以覆盖与其相连的边,求将整棵树的边覆盖,最少需要放置几个点。 思路 可以发现,根是哪个点,对答案没有影响,那我们
阅读全文
摘要:#一.概念 1.算法本质:最小生成树算法在有向图上的应用。 2.最小树形图定义:以某点为根的一棵最小的有向树。 3.树形图: (1)无环; (2)每个点的入度为1。 #二.算法思路 是一个迭代算法。 1.除根外,对于每个点,找出所有入边中,权值最小的边。 2.选出的边中是否存在环,无环,则算法结束;
阅读全文
摘要:#一.定义 任意一条边至多出现在一条简单回路的无向连通图。 #二.思路 给定一仙人掌图,多次询问两点最短距离。 首先,如果是一棵树,是很好处理的, 。 然后,它给的不是一棵树,那怎么办呢?我们想把它变成一棵树。我们引入一个知识点:圆方树。 怎么把仙人掌转
阅读全文
摘要:#一.流函数的性质 ##1.容量限制: 。 ##2.斜对称: 。 ##3.流量守恒: 除源点和汇点外,任何节点流入总量等于流出总量。 网络流:在不超过容量限制的前提下,“流”从源点源源不断地产生,流经整个网络,最终全部归于汇点。 #二.
阅读全文
摘要:#最小生成树 ##一.Kruskal ####1.定理: 任意一棵最小生成树一定包含无向图中权值最小的边。 ####2.步骤: (1)建立并查集,每个点单独构成集合。 (2)边从小到大排序,依次扫描每条边。 (3) , 属于同一集合,忽略这条边。 (4)否则,合并 , 所在的集合,
阅读全文