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\) 元环可以走回头路
性质:一条边至少有一个方向可以直接走
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)\)。