P6378 [PA2010] Riddle
n个点m条边的无向图,分为k个部分,从每个部分选择恰好一个关键点,使得每条边至少有一个端点是关键点。
首先有这么多的限制,实际上就是一个选或者不选的问题,每条边的限制相当于一个不选就必须选另一个,每个部分的限制就是一旦选择某一个就不能选其他的,所以可以很好地用2-sat来表示。
现在还有一个问题就是如何满足恰好一个关键点,如何避免不选的情况,但是发现如果不选说明这部分点之间没有连边,否则就必须选了,那么我们就可以任选一个点作为关键点,不影响答案。
然后考虑部分限制的图怎么建,本质上就是向除了自己的其他所有非点连边,那么这是一个常见的前后缀优化建图的套路,优化之后图的联通性没有发生变化。