2025省选集训Day3-图论补充
今天主要内容是耳分解、双极定向和边三连通。
A. Quare [SNOI2013]
因为要求边权最小的包含每一个点的边双连通子图,所以要求的图一定可以耳分解。把 \(1\) 号点设为 \(G_0\),每次加一条耳,状压 \(DP\) 这个过程。
B. 景点划分 [IOI2019]
不想用双极定向做,直接交原来的代码。
C. 白鹭兰
先建出圆方树,题意相当于在圆方树上选取一条方点构成的链,把选取的方点以外的连通的点都缩起来,使含圆点最多的连通快最小。
总之类似于树的直径的结论,我们枚举这个方点链的 \(LCA\),它一定会选往重儿子和次重儿子的两条链走,所以用一个 \(DP\) 来得到每个点的答案。
求出来链首和链尾后就在原图上缩点,然后就是双极定向问题了。双极定向问题就是模拟删叶子的过程,有点复杂,类似于拓扑排序,还是直接看代码比较好。
D. 边三连通分量
考虑一条边要怎样会成为边三连通的割边,首先对于边双连通的割边一定是,接下来的情况我们可以随机赋权来找。
给每条非树边随机设一个权,每条树边的权值是包含它的非树边的异或和。这个可以用树上差分在 \(Tarjan\) 的时候求得。如果一条树边的权值和某条非树边一模一样,那么说明这条树边就是割边。感性理解一下就是如果割掉这条边和那一条对应的非树边,下面就走不到上面去了。还有一种情况就是如果两条树边的权值相同,则这两条树边也是割边,同样感性理解一下就是割掉这两条边后,这两条边中间的点就走不到外面去了。
所以我们可以处理出哪些树边是割边,这样就够了,然后同样可以用随机赋权的方式来对每个边三连通分量赋权,然后统计答案。
E. Economic One-way Roads
和第一题几乎一样,只不过由于每条边都要定向,就先对答案加 \(min\{a_{i, j}, a_{j, i}\}\),然后把边权设为 \(a_{i,j}-min\{a_{i, j}, a_{j, i}\}\),就行了。
F. App 管理器
注意到 \(n\) 的范围只到 \(5000\),我们可以对于每条边单独考虑,如果定向为 \(a\to b\),且割掉 \(a\) 和 \(b\) 之间的边后能从 \(b\) 走到 \(a\),就说明是成立的。暴力就行了。