摘要: 拓扑排序 概念: DAG:有向无环图。 拓扑排序可以对一张DAG上的顶点排序。 流程: 最初将入度为\(0\)的点加入队列。 每次从队列中取出一个点,删去这个点的所有出边,将新产生的入度为\(0\)的点加入队列。这样按入队的先后顺序就把顶点排好序了。 \(O(n+m)\)。 拓扑排序在后的点只依赖于 阅读全文
posted @ 2024-12-23 10:59 RandomShuffle 阅读(22) 评论(0) 推荐(0)
摘要: 基础部分 概念: 欧拉回路:经过每条边恰好一次的回路(回到起点)。 欧拉通路:经过每条边恰好一次的通路(不回起点)。 欧拉图:具有欧拉回路的图。 半欧拉图:不具有欧拉回路,但具有欧拉通路的图。 有向图强连通:任意两个顶点都可以通过有向边相互到达。 有向图弱连通:将有向边换成无向边后,任意两个顶点连通 阅读全文
posted @ 2024-12-23 10:55 RandomShuffle 阅读(117) 评论(0) 推荐(0)
摘要: 注意只有连通图才有生成树,图不连通就只有生成森林。 无向图最小生成树 都利用了贪心的思想。一些看似不是最小生成树的问题想想贪心的话或许能化归过来。 Kruskal 基本思想是按边权从小到大加边,是贪心思想。 时间复杂度\(O(m\log m)\)。 板子 sort(e+1,e+tot+1,cmp); 阅读全文
posted @ 2024-12-23 10:49 RandomShuffle 阅读(41) 评论(0) 推荐(0)
摘要: 差分约束 用于求有\(n\)个变量,\(m\)条限制,每条限制只与两个变量的差有关的问题的一组解。 一般可以转化为最短路或者最长路解决。 最短路:用三角形不等式\(dis_v\le dis_u+w\)来保证解合法,这样一条不等式等价于\(x_v\le x_u+w\)。 最长路:类似最短路,用\(di 阅读全文
posted @ 2024-12-23 10:44 RandomShuffle 阅读(30) 评论(0) 推荐(0)
摘要: 板子是一定要记的,但不够,全是思维题,要解放思想开动脑筋。 板子 Floyd 是全源最短路。 只要最短路存在(无负环),不管有向无向,边权正负,都可以用。 板子 for(int k=1;k<=n;++k){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j) d 阅读全文
posted @ 2024-12-23 10:42 RandomShuffle 阅读(31) 评论(0) 推荐(1)
摘要: 拜谢lxl 维护函数复合 大概是每个位置上有一个函数\(f(x)\),给出\([L,R]\)和初值\(v\),算\(f_R(f_{R-1}(\dots f_L(v)\dots))\)。 有个东西叫插入-标记-回收算法。 首先将所有询问离线,然后拿扫描线扫一遍序列。维护一个集合\(S\),存每个询问的 阅读全文
posted @ 2024-12-18 21:17 RandomShuffle 阅读(128) 评论(0) 推荐(2)
该文被密码保护。 阅读全文
posted @ 2024-12-18 09:04 RandomShuffle 阅读(0) 评论(0) 推荐(0)
摘要: 省流:爆零了。 阅读全文
posted @ 2024-12-18 07:59 RandomShuffle 阅读(0) 评论(0) 推荐(0)
摘要: 菜就多练。 朴素的容斥原理应用 I.P1450 [HAOI2008] 硬币购物 Q: 共有 \(4\) 种硬币。面值分别为 \(c_1,c_2,c_3,c_4\)。 某人去商店买东西,去了 \(n\) 次,对于每次购买,他带了 \(d_i\) 枚 \(i\) 种硬币,想购买 \(s\) 的价值的东西 阅读全文
posted @ 2024-12-17 16:11 RandomShuffle 阅读(38) 评论(0) 推荐(1)
摘要: 容斥的最直接的想法就是给算重了的东西填上系数,使得不合法的东西都算了\(0\)次,然后合法的东西都算了\(c\)次(\(c\)为常数,\(c=1\)当然最好)。 要证明一种容斥是对的,就考察任意一个对象,验证其计数次数是否符合要求即可。 普通容斥 对于一个集合 \(S\) 的一部分子集构成的簇 \( 阅读全文
posted @ 2024-12-14 16:08 RandomShuffle 阅读(314) 评论(2) 推荐(2)