最短路
AGC044B Joker
每删除一个观众,更新周围的答案,然后因为只有才答案减少才会更新,而初始总答案 \(<n^3\),这样是 \(O(n^3)\) 的。
P5304 [GXOI/GZOI2019] 旅行者
求集合 \(S\) 中任意两点最短路的最小值。
枚举二进制下的位,将这一位为 \(0\) 的放进集合 \(A\),为 \(1\) 的放进集合 \(B\),求得 \(A\) 到 \(B\)、\(B\) 到 \(A\) 的最短路,取 \(\min\)。
正确性:\(S\) 中的任意两个数,二进制下至少有一位不同,也就是这两个点之间的最短路会被考虑进答案之中。
差分约束系统
P3275 [SCOI2011] 糖果
差分约束因为 SPFA 最坏 \(O(nm)\),强连通分量缩点,不能存在正权环,否则剩下一个 DAG,\(O(n+m)\) 拓扑更新答案。
联通分量
P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G
强连通分量缩点,只要不存在两个出度 \(0\) 的强连通分量,答案就是那 \(0/1\) 个出度 \(0\) 的强连通分量的大小。
CF555E Case of Computer Network
边双缩点,然后剩下一个森林,用树上差分看每条边是否必须向上/向下。
网络流
CF510E Fox And Dinner
因为 \(a_i\ge 2\),而 \(>2\) 的质数一定是奇数,所以每个环上只能有偶数只狐狸且年龄奇偶相间。
二分图,年龄奇数的向年龄和为质数的连边,每只狐狸匹配另外两只狐狸。