ARC205 B,D,E
ARC205
Problem B. B - Triangle Toggle
不断找只有 \(\le 1\) 条黑边的三元组,将其反转,答案至少增加 \(1\),直到找不到这样的三元组就得到了答案。
每个点的白边个数奇偶性不变,且在答案中没有一个点有 \(\ge 2\) 条白边。
若 \(n\) 为奇数,答案为 \(\dfrac{n(n-1)}{2}\);否则为 \(\dfrac{n(n-1)}2 - \dfrac{n}{2}\)。
Problem D. D - Non-Ancestor Matching
直接想法是,先让每个子树内的未匹配点最小,然后合并时剩下的能匹配就匹配。但是不一定最优,因为子树内的一条匹配边可以断掉然后匹配外面的两个点,让答案加一。
那么我们从上往下,能匹配就匹配,匹配不了的递归进子树再处理。
具体地,设当前子树为 \(x\),设其儿子子树大小为 \(s_1,s_2,s_3,\cdots,s_k\),不妨让它单调不降。如果 \(s_k\le \sum_{i=1}^{k-1} s_i\),那么可以匹配完,返回;否则,递归进 \(s_k\) 子树,并记录一下外面有几个点可以用,继续处理即可。
Problem E. E - Subset Product Problem
朴素做修改 \(O(V)\),查询 \(O(1)\)(或者反过来)。考虑上值域分块平衡一下,把每个数字写成 \(BP+Q\) 的形式,其中 \(B\)。修改时 \(O(\frac V B)\) 更新能被 \(P\) 更新的块,查询时在 \(P\) 所在块里 \(O(B)\) 查一下 \(Q\) 的答案即可。
取 \(B=\sqrt{V}\),复杂度 \(O(n\sqrt{V})\)。

浙公网安备 33010602011771号