标签:大小 work mat inf 并查集 过程 卡住了 需要 支持
又是我做不出来的题。
这题我分析到了“对于每一个询问,查询最小的bound,使得将\(w\leq bound\)的边都加入,使得所有联通快都是偶数”这一步,然后就卡住了。
可以发现,所有询问的答案不增的,若设无解为\(\infty\)。
然而还是不会做。
不过我们回忆一下“决策单调性”来优化dp过程的做法。
定义\(work(l,r,L,R)\)表示已知\(\bigcap_{i=l}^r answer_{i}\in [L,R]\)。然后计算出所有\(l\)到\(r\)之间的\(answer\)。
设\(mid=\lfloor\frac{l+r}{2} \rfloor\),则我们只需要计算出\(answer_{mid}\),就可以递归算出:\(work(l,mid-1,L,answer_{mid}),work(mid+1,r,answer_{mid},R)\)了。
如何计算\(answer_{mid}\)呢?
可以用并查集!
假设我们已经加入了\(w<L\)的所有边,然后我们依次加入\(L\)到\(R\)的边,然后判定有没有大小为奇数的联通快就行了。
这个并查集还需要支持撤销!
另一个相似的题目:arc 045 d みんな仲良し高橋君
标签:大小 work mat inf 并查集 过程 卡住了 需要 支持
原文地址:https://www.cnblogs.com/gary-2005/p/14244058.html