摘要: 二分图匹配 这是一个绿与被绿的故事...... 首先二分图就是一张图能分成两个点集,集合内部没有连边,两集合之间有若干连边 现在有这么一张图 要求最多有多少对点能匹配成功 首先,我们给张起灵匹配。我们发现他只能和吴邪匹配,那好,我们给他们安排上。 现在这张图长这样(张海客:族长你不要我们了) 现在给 阅读全文
posted @ 2018-10-30 20:14 Kylin_Seven 阅读(240) 评论(1) 推荐(0) 编辑
摘要: 判环 $SPFA$判负环 亲身试验$dfs$过不了,会被卡成$n^n$。传统$spfa$,判断一个点的入队次数,超过$n$就有负环 $Floyed$无向图求最小环 cpp include include using namespace std; const int inf(0x1f1f1f1f) ; 阅读全文
posted @ 2018-10-30 19:38 Kylin_Seven 阅读(151) 评论(0) 推荐(1) 编辑
摘要: 最短路 [TOC] $Floyed$ $n^3$复杂度,数据小可以用,也可以用来判断图是否连通、求环。 最短路计数 求到每个点有多少条最短路 更新最短路的同时记录有多少条最短路。若有更短的,则条数等于上一个点的最短路条数,若相等则最短路条数$+1$ cpp include include inclu 阅读全文
posted @ 2018-10-30 19:30 Kylin_Seven 阅读(301) 评论(0) 推荐(1) 编辑
摘要: 最近公共祖先 LCA Tarjan 树剖 最简单的$LCA$就是利用倍增的思想,$f[i][j]$表示从$i$号节点往上跳$2^j$个点到哪了。 先将两个点跳到同一高度,然后一块往上跳,最后得到的节点的父亲就是答案。 cpp include include using namespace std; 阅读全文
posted @ 2018-10-30 19:15 Kylin_Seven 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 最小生成树 $Kruskal$ 很简单的贪心求最小生成树。 按边权排序,从前往后枚举边,只要这条边的两个点不在一个集合里,就将他加入答案,同时合并该边连接的两个点。并查集维护一下就好了 欢迎指正评论O(∩_∩)O~~ 阅读全文
posted @ 2018-10-30 19:04 Kylin_Seven 阅读(144) 评论(0) 推荐(0) 编辑
摘要: "玩具装箱" 题目描述 $P$教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。$P$教授有编号为 $1⋯N $的 $N$ 件玩具,第 $i$件玩具经过压缩后变成一维长度为 $Ci$ .为了方便整理 阅读全文
posted @ 2018-10-30 16:48 Kylin_Seven 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 树链剖分 [TOC] 树这个结构,本身很优美,但有些涉及区间的问题用树来做就会比较别扭。有一些方便处理区间的数据结构,可以和树结合一下。比如线段树。 定义 重儿子:所有儿子中节点数最多的儿子 轻儿子:除重儿子以外的儿子 重边:链接重儿子的链 轻边:剩余的边 重链:链接重儿子的链 轻链:其余的链 思想 阅读全文
posted @ 2018-10-30 15:55 Kylin_Seven 阅读(180) 评论(0) 推荐(0) 编辑