图论杂题选做
图论杂题选做
Problem A. UOJ605 知识网络
相同标签之间的边数太多,所以每个标签建一个新点,点向标签连 \(0\) 边,标签向点连 \(1\) 边。边数降为 \(O(n+m)\)。
点数太多,不能直接跑,但标签很少。所以可以先以每个标签为起点跑 01BFS 求出 \(dis\)。
对任意一个点 \(x\),标签内的点与其 \(dis\) 相差不超过 \(1\)。建出最短路径图,若 DAG 上 \(y\) 可到达 \(x\),则 \(dis_{y,x}\) 要减一。
但 DAG 上的可达性问题很难做到 \(O(n^2)\) 以下,但可以用 bitset 除 \(w\)。但直接开空间不够,考虑每 \(B\) 个起点一起做,时间 \(O((k+\frac n B)\frac {nB}w)\),空间 \(O(\frac{nB} w)\),取 \(B=300\) 可以通过。
总时间 \(O(k(n+m)+\frac {n^2} w)\),空间 \(O(\frac{nB} w)\)。
https://uoj.ac/submission/784273
Problem B. [CF875F] Royal Questions
将每个公主看做 \((u,v,w)\),以每个王子为点,重新建出一张一般图。问题转化为,选出若干边,并给它们定向,使每个点入度最多为 \(1\),最大化边权和。
类似于 Kruskal,求出最大 生成树/基环树森林即可。
https://codeforces.com/contest/875/submission/332940134
Problem C. [ARC092F] Two Faced Edges
对每条边分讨一下:
- \(u,v\) 在同一 SCC 内。SCC 数量变化,当且仅当 \((u,v)\) 这条边是 \(u\) 到 \(v\) 的必经边。
- $u,v $ 不在同一 SCC 内。SCC 数量变化,当且仅当 \((u,v)\) 这条边不是 \(u\) 到 \(v\) 的必经边。
我们枚举起点 \(s\),先从前到后枚举 \(s\) 出边,若遍历到 \(t\) 时已经被遍历则 \(t\) 可以被前面的点到达,\((s,t)\) 不是必经边。然后再倒着跑一遍。复杂度 \(O(nm)\)。
Submission #68279931 - AtCoder Regular Contest 092
Problem D. UOJ32 跳蚤公路
考虑 bellman-ford 判负环,设 \(f_{u,i}\) 为 \(u\) 点迭代 \(i\) 次的最短路,若 \(f_{u,n}<f_{u,n-1}\) 则 \(x\) 能到达的所有点都有发财路径。
对于 \(x\),我们再加一维,设 \(f_{u,t,i}\) 为 \(u\) 点迭代 \(i\) 次,\(x\) 前系数是 \(t\) 的最短路。那么没有负环,需要满足
转化为逻辑符号,
固定 \(t\),对所有 \(p\) 解出的范围取并,然后对所有 \(t\) 解出的范围取交。再更新一下其所能到达的所有节点即可。
提交记录 #790296 - Universal Online Judge
Problem E. UOJ513 清扫银河
对于 1 操作,先随便搞出一个生成森林,每条非树边对应一个简单环。设连通块数量为 \(c\),这样的环不超过 \(m-n+c\) 个。所有的简单环都能由若干个这样的环异或得到。
对于 2 操作,操作可以拆为单点,不超过 \(n-c\) 次。加起来操作次数不超过 \(m+1\),所以只需判断有没有解。
直接将边集扔进线性基是 \(O(m^3/w)\) 的,考虑优化。二操作可以若干个点一起操作,可以只做一次。对于一个 2 操作点集,若操作后每个点的 1 边数量都是偶数就合法。未知数的数量缩小到 \(n\),由此列方程,高斯消元求解,\(O(n^3/w)\)。
提交记录 #790383 - Universal Online Judge
Problem F. UOJ61 怎样更有力气
考虑 Kruskal,先将 \(m\) 条链按照 \(w\) 排序。设 \(i\) 链的限制数为 \(p_i\)。
若 \(p_i\) 小于 链大小减一,那么相当于没有限制,直接合并。
否则,可以暴力将链上的点拿出来。找到补图上度数最小的节点 \(x\),则 \(deg_x\) 不超过 \(O(\sqrt{p})\)。 将与 \(x\) 有连边的点放入 \(T\) 集合,其他的放入 \(S\)。\(S\) 中的点可以直接与 \(x\) 合并,\(T\) 中节点可以 \(O(|T|^2)\) 合并,然后再合并 \(S,T\),判一下 \(T\) 中点与 \(S\) 的连边是否达到 \(|S|\) 即可。

浙公网安备 33010602011771号