dag 最大独立集(也叫最长反链)
Dilworth 定理:一个 dag 中最大独立集的大小,等于其偏序集的最小不可重链覆盖的大小。
听着很神秘,实际是这样:
偏序集:对于每一个点三元组 \((i, k, j)\),如果原图中有边 \((i, k)\) 和 \((k, j)\),则偏序集中有边 \((i, j)\)。
可以 Floyd。
最小不可重链覆盖:用最少条链不重不漏的经过每个点恰好一次。
考虑每个点都是一条链,慢慢合并链,调整。
我们拆点,一排入点,一排出点,构造二分图即可。
知道这个了之后,如果一对点都在最大独立集,则这个点在 dag 的最大独立集上。
P4298 [CTSC2008] 祭祀 - 洛谷