随笔分类 -  图论算法

摘要:[BZOJ4316]小C的独立集(仙人掌+树形DP) 题面 图论王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨。 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点,这些点互相没有边连接,并使取出的点尽量多。 小D虽然图论很弱,但是也知道无向图最大独立集是n 阅读全文
posted @ 2020-12-01 16:06 birchtree 阅读(206) 评论(0) 推荐(0) 编辑
摘要:[BZOJ3354]创世纪(基环树+树形DP) 题面 applepi手里有一本书《创世纪》,里面记录了这样一个故事…… 上帝手中有着N 种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去以建造世界。每种世界元素都可以限制另外一种世界元素,所以说上帝希望所有被投放的世界元素都有 阅读全文
posted @ 2020-12-01 15:26 birchtree 阅读(265) 评论(0) 推荐(0) 编辑
摘要:[BZOJ3786]星系探索(欧拉序+非旋treap) 题面、 物理学家小C的研究正遇到某个瓶颈。 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球。主星球没有依赖星球。我们定义依赖关系如下:若星球a的依赖星球是b, 阅读全文
posted @ 2020-08-05 13:34 birchtree 阅读(335) 评论(0) 推荐(1) 编辑
摘要:[LOJ3255][JOI 2020 Final]奥运公交(最短路) 题面 给出一个n个点m条边的有向图,经过每条边需要费用ci.选择一条边并将其反向需要费用di(反向后经过的费用不变).问至多反向一条边,从1到n再回到1的最小花费 \(n \leq 200,m \leq 500 阅读全文
posted @ 2020-07-31 21:34 birchtree 阅读(257) 评论(0) 推荐(0) 编辑
摘要:[AHOI2014]支线剧情(有上下界的网络流) 题面 JYY现在所玩的RPG游戏中,一共有N个剧情点,由1到N编号,第i个剧情点可以根据JYY的不同的选择,而经过不同的支线剧情,前往Ki种不同的新的剧情点。当然如果为0,则说明i号剧情点是游戏的一个结局了。 JYY观看一个支线剧情需要一定的时间。J 阅读全文
posted @ 2020-07-30 15:40 birchtree 阅读(269) 评论(0) 推荐(0) 编辑
摘要:[SDOI2014]LIS(最小割) 题面 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci。请删除若干项,使得A的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案。 如果有多种方案,请输出将删去项的附加属性排序之后,字典序最小的一种。 n700 分析 先 阅读全文
posted @ 2020-07-30 15:16 birchtree 阅读(228) 评论(1) 推荐(0) 编辑
摘要:[BZOJ2561]最小生成树(最小割) 题面 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出 阅读全文
posted @ 2020-07-30 14:30 birchtree 阅读(127) 评论(0) 推荐(0) 编辑
摘要:[ZJOI2010]网络扩容(费用流) 题面 给定一张有向图,每条边都有一个容量c和一个扩容费用w。这里扩容费用是指将容量扩大1所需的费用。求: 在不扩容的情况下,1n的最大流; 将1n的最大流增加k所需的最小扩容费用。 分析 先求出原图的最大流,大小设为f阅读全文
posted @ 2020-07-28 09:59 birchtree 阅读(154) 评论(0) 推荐(0) 编辑
摘要:[LuoguP4208][JSOI2008]最小生成树计数 题面 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对 阅读全文
posted @ 2020-07-25 16:23 birchtree 阅读(194) 评论(0) 推荐(0) 编辑
摘要:树论算法复习笔记 省选前写的,现在发出来 树的直径 定义:树的直径是树上的最长路径。 值得注意的是,直径并不唯一 直径的性质 我们这里只讨论无负权的情况 直径两端点一定是叶子节点。 距任意点最远点一定是直径的端点,据所有点最大值最小的点一定是直径的中点。 两棵树相连,新直径的两端点一定是原四个端点中 阅读全文
posted @ 2020-07-01 16:24 birchtree 阅读(877) 评论(0) 推荐(1) 编辑
摘要:网络流常见建图套路总结(重制版) 前置知识 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 最小割,最小割最大流定理 二分图判定,匹配,相关性质 由于本文以建图方法为主,不涉及网络流算法的具体实现,以上前置知识一边看一边学也可以 最大流 二分图最大匹配与多重匹配 二分图匹配:给定一个二分 阅读全文
posted @ 2020-05-18 19:36 birchtree 阅读(5262) 评论(8) 推荐(9) 编辑
摘要:[BZOJ2127]happiness(最小割) 题面 高一一班的座位表是个n m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛 阅读全文
posted @ 2020-05-18 10:15 birchtree 阅读(363) 评论(0) 推荐(0) 编辑
摘要:[网络流24题]餐巾计划问题(费用流) 题面 一个餐厅在相继的 N天里,每天需用的餐巾数不尽相同。假设第 i天需要ri块餐巾( i=1,2,...,N)。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 阅读全文
posted @ 2020-05-13 22:30 birchtree 阅读(332) 评论(0) 推荐(1) 编辑
摘要:[BZOJ1001]狼抓兔子(平面图最小割) 题面 略 分析 我们发现,如果把 每个平面区域看成一个点 ,交界处的边看成连接两个区域的边,再加两个点表示分割线的起点和终点、那么原图的一个割就对应新图的一条路径。如图上S (1) (4) (9) (10) T就构成了一个分割线,割断的边权为5,6,3, 阅读全文
posted @ 2020-05-13 20:32 birchtree 阅读(312) 评论(0) 推荐(0) 编辑
摘要:[AT5203][AGC038F]Two Permutations(网络流).md 题面 给出两个排列P,Q.要求构造两个排列A,B. 要求:Ai要么等于i,要么等于Pi;Bi要么等于i,要么等于Qi 最大化AiBi的下标i数量 分析 阅读全文
posted @ 2020-04-27 13:15 birchtree 阅读(411) 评论(0) 推荐(0) 编辑
摘要:[GDSOI2017]中学生数据结构题(树链剖分+fhq treap) 题面 给出一棵树,支持三种操作 1. ADD:路径加 2. QUERY:路径求和 3. SHIFT:树上路径整体循环移动一位(如:原路径上的权值依次是:1,4,5,3,操作完后变成:3,1,4,5) 分析 考验数据结构功底和代码 阅读全文
posted @ 2020-04-20 20:47 birchtree 阅读(201) 评论(0) 推荐(0) 编辑
摘要:动态DP学习笔记 约定: 若无特别说明,数组下标从1开始. 若无特别说明,矩阵的下标从0开始(这是为了和代码一致,而代码这样实现是为了节省内存) 在公式中,矩阵用粗斜体表示,如\bm 若无特别说明,对于有根树上的结点x,child(x)表示它儿子的集合,son(x)表示它的重儿子 对 阅读全文
posted @ 2020-04-11 20:03 birchtree 阅读(292) 评论(0) 推荐(0) 编辑
摘要:[POJ1149][SPOJ4063]PIGS(最大流) 题面 略 分析 很妙的网络流建图套路。 注意到我们只能交换客户打开过的猪圈里的猪。那么相当于可以通过顾客来中转猪。体现到建图上就是: 我们把每一个顾客看成一个点。对于每个猪圈,从原点向打开它的第一个顾客连边,容量为初始猪数量ai,表示最 阅读全文
posted @ 2020-03-29 20:13 birchtree 阅读(119) 评论(0) 推荐(0) 编辑
摘要:[BZOJ3879]SvT(后缀树+虚树) 题面 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始位置来表示),求这些后缀两两之间的LCP的长度之和.一对后缀之间的LCP长度仅统计一遍. 分析 建出S的后缀树 阅读全文
posted @ 2020-03-29 19:48 birchtree 阅读(211) 评论(0) 推荐(0) 编辑
摘要:[NOI Online 提高组]序列 (并查集+二分图判定) 题面 略 分析 首先不妨令bi=biai,这样我们需要通过一系列操作把所有bi变成0. 我们把每个位置看成点。 对于所有2操作连边。如果两个位置连通,就可以使一个位置+1,一个位置 1.那么对于一个连通块, 无论我们怎么 阅读全文
posted @ 2020-03-24 22:08 birchtree 阅读(222) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示