摘要:
Description "P3687 [ZJOI2017]仙人掌 洛谷 | 计算机科学教育新生态" Solution 我们先考虑只有一棵树如何处理. 仙人掌可以看做若干环的集合. 特别的, 对于一条没有环的边, 可以加上重边, 那么这个边和它的重边构成一个环. 对于树来说, 问题就可以转化为求加上若 阅读全文
摘要:
边的分类 有向图 有向图边分为四类: 树边, 前向边, 返祖边(后向边), 横叉边. 上图: 判定 对图进行dfs, 不考虑已经遍历过的点, 得到dfs序 $dfn_i$. 在dfs过程中, 记录当前dfs栈. 对于边$(u,v)$, 1. 树边: $vis_v=0$; 1. 前向边: $vis_v 阅读全文
摘要:
上下界 上下界网络流指的是边的流量有上下界的一类网络流问题. 网络流 无源汇可行流 无源汇显然没有最大流:P 对于边 $(u, v, [l, r])$, 连边 $(u, v, r l)$, 并且记录 $v_u += l$, $v_v = l$. 然后, 建立超级源点$ss$, $tt$. 对于 $v 阅读全文
摘要:
Description "SPOJ.com Problem OPTM" Solution 容易发现各个位之间互不影响, 因此分开考虑每一位. 考虑题中是怎样的一个限制: 1. 对每个点确定一个0/1的权值; 1. 对于有连边且权值不同的点, 对答案有1的贡献; 1. 求最小权值. 发现这就是对所有点 阅读全文
摘要:
Description SGU似乎死了... 题目搬到了Codeforces... "Problem 99999438 Codeforces" Solution 动态最大流. 考虑如果不求时间, 只求能否到达对岸, 这显然是一个拆点最大流. 如果加上时间的限制, 考虑按照时间拆点, 然后枚举时间 $ 阅读全文
摘要:
长链剖分 "长链剖分学习总结 | Bill Yang's Blog" 简介 对每个节点 $p$, 定义 $\operatorname{len} (p)$ 表示 $p$ 到它子树中叶子节点的最大长度. 类似重链剖分, 把每个节点 $p$ 的儿子中 $\operatorname{len}$ 最大的设为它 阅读全文
摘要:
Code include include include include include include include include include using namespace std; define rep(i,l,r) for(register int i=(l);i=(r); i) d 阅读全文
摘要:
简介 "矩阵树定理 OI Wiki" 矩阵树定理可以求无/有向图生成树个数. 对于无向图: 定义度数矩阵 $D$, 邻接矩阵 $E$, 那么基尔霍夫矩阵 $K = D E$. 图的生成树个数 $t(G) = \det(K_{ii})$, 其中 $K_{ii}$ 表示$K$ 去掉第 $i$ 行和第 $ 阅读全文
摘要:
最短路 SPFA 时间复杂度 $O(nm)$, 空间复杂度 $O(n)$. STL队列. 手写队列. 亲测比STL慢, 似乎大量的时间浪费在取模上...== Dijkstra 时间复杂度 $O((n+m)\log n)$. 差分约束 对于 $x_i x_j \le a_i$, 它等价于三角不等式 $ 阅读全文
摘要:
Description "P2597 [ZJOI2012]灾难 洛谷 | 计算机科学教育新生态" Solution 根据题意建图, 新建一个 $S$ 点, 连向每个没有入边的点. 定义每个点 $P$ 的支配点为从 $S$ 到 $P$ 的任意路径必经的点. 那么题意便为对于每一个点, 求有多少个点以它 阅读全文