UOJ #217 -【UNR #1】奇怪的线段树(路径覆盖+简单优化建图)

UOJ 题面传送门

orz 卷王 aaabcd /bx

随便开了道 aaabcd 卷过的题然后完全想偏了,想成奇怪的 DP 了(果然 aaabcd 全方位六边形我啊)

首先,如果一个点是白的但它子树内有黑点,那么显然无解,其他情况可以证明有解。

可以注意到一个性质,就是如果所有满足【该点为黑点,但是子树内没有其他黑点】的点都已经被覆盖了,那么所有黑点肯定都已经被覆盖了。考虑一次线段树操作能够覆盖哪些满足该要求的点,发现必然是一段右儿子 + 一段左儿子。并且对于一个节点而言,它下一个点可能是什么与之前的点没有关系,因此考虑对于每个点,我们向其所有可能的后继连一条边,这样一段右儿子 + 一段左儿子就可以用一条路径来刻画。于是问题转化为给你一张图,所有白点都不能被覆盖,所有满足【该点为黑点,但是子树内没有其他黑点】都必须被覆盖,问最少几条路径。这是经典可以用上下界网络流解决的问题,这里不再赘述。

朴素建边的平方的,不过一个很显然的性质是我们连边会形成若干个团状的结构,直接建虚点可以优化到线性。

posted @ 2022-08-13 08:51  tzc_wk  阅读(43)  评论(0编辑  收藏  举报