NOIP 第十一次
A
直接造就完了……实在不行看看样例
B
最大值最小,先二分答案 $k$。
问题变为每条边 $(u_i,v_i,w_i)$ 只能在 $\left\lfloor\dfrac k{w_i}\right\rfloor$ 时刻之前走,问有没有 $1\to n$ 的路径,直接 BFS 即可。
C
sto APJ orz
先选上最大生成树的所有非树边,然后选上每个偶数度数点到其最大生成树上父亲的边,
此时 $n$ 为偶数则度数全是奇数(直接做完了),$n$ 为奇数则剩一个点度数为偶数。
下面只考虑 $n$ 为奇数。
把“然后”一步连上的这些树边断开,按出现顺序依次贪心地决定每条树边选不选。
定义原图中度数为偶数的点为黑点,建一张新图,新图中 $(u,v)$ 存在当且仅当原图中 $(u,v)$ 没被选,初始新图就是最大生成树。
有牛子结论:
- 贪心到第 $i$ 条树边时,若新图中仅有一个连通块有奇数个黑点,则 $i$ 及之前的贪心方案是合法的。
牛子证明:
- 把同一连通块内的黑点两两配对,flip 每对黑点间路径上的边的选择情况,这样一定可以构造出剩一个点度数为偶数的方案,
而这种方案仅在当前贪心方案的基础上多选了一些边,而 $[1,i]$ 的字典序已是极大的,所以多选的边只可能在 $i$ 后,
也就是说,以当前贪心方案为前缀,仅改变之后的边的选择方案,可以构造出一组合法方案。
于是按出现顺序,用上面的结论,依次考虑每条边是否能选(在新图中断掉)。
断边不太好维护,所以可以用可撤销并查集反向加边,然后依次撤销即可。
D
先咕。