Involuting xzy!

orz rainybunny

2021.10.15

01 CF1558E Down Below

题意:无向图 \(G\),节点有权值 \(a,b\)(除 \(1\) 节点),你从节点 \(1\) 出发,有一个权值 \(val\)。你可以走一条边 \((u,v)\) 当且仅当不是回头路且当前的 \(val>a_v\),一次移动之后 \(val\leftarrow b_v\)。你可以重复经过一个点但不能重复获得 \(b\),求初始 \(val\) 最小值。(\(3\leqslant n\leqslant 1000,n\leqslant m\leqslant 2000\),图联通且点度数 \(\geqslant 2\)

思考:

二分

直接搜?

性质:\(>2\) 元环可以走回头路

性质:一条边至少有一个方向可以直接走

AC记录

02 CF1343E Weights Distributing

题意:无向图 \(G\),你有一个边权序列 $w,你要将这个边权序列一一对应到每一条边上使得 \(A\)\(B\) 的最短路与 \(B\)\(C\) 的最短路之和最小。(\(1\leqslant n,m\leqslant 2\times 10^5\)

思考:看错题意了,悲

做法:实际上非常简单,不难发现固定边权之后答案等于以 \(B\) 为根的最短路树上 \(A\)\(C\) 深度之和。

枚举 \(A\)\(C\) 的 LCA \(k\),那么容易发现答案就是 \(k\) 与三个点的距离之和加上 \(k\)\(B\) 的距离。

于是三遍 bfs,然后贪心赋权值就可以了,时间复杂度 \(O(m\log m)\)

AC记录

2021.10.16