1. 最 大 独 立 集 \large1.最大独立集 1.最大独立集
选出最多的点,使得所有点都是不相邻的
状态表示: d p i , j dp_{i,j} dpi,j 表示以 i i i 为根的树,如果 j j j 为 0 0 0 ,表示不选这个点,如果 j j j 为 1 1 1,表示选这个点
属性: Max \text{Max} Max
状态计算:
如果当前点 i i i 不选,那么子节点 j j j 可以被选或不被选:
d p i , 0 = ∑ k = 1 n max ( d p j k , 0 , d p j k , 1 ) dp_{i,0}=\sum_{k=1}^{n}\max (dp_{j_k,0},dp_{j_k,1}) dpi,0=k=1∑nmax(dpjk,0,dpjk,1)
如果当前点 i i i 被选,那么子节点 j j j 一定不能被选:
d p i , 1 = ∑ k = 1 n d p j k , 0 dp_{i,1}=\sum_{k=1}^{n}dp_{j_k,0} dpi,1=k=1∑ndpjk,0
AcWing \text{AcWing} AcWing 285 285 285 没有上司的舞会(带点权)
2. 最 小 点 覆 盖 \large 2.最小点覆盖 2.最小点覆盖
选出最少的点,覆盖所有的边
状态表示: d p i , j dp_{i,j} dpi,j 表示以 i i i为根的树,如果 j j j 为 0 0 0 ,表示不选这个点,如果 j j j 为 1 1 1 ,表示选这个点
属性: Min \text{Min} Min
状态计算:
如果当前点 i i i 不选,那么子节点 j j j 一定被选:
d p i , 0 = ∑ k = 1 n d p j k , 1 dp_{i,0}=\sum_{k=1}^{n} dp_{j_k,1} dpi,0=k=1∑ndpjk,1
如果当前点 i i i 被选,那么子节点 j j j 可以被选或者不选:
d p i , 1 = ∑ k = 1 n min ( d p j k , 0 , d p j k , 1 ) dp_{i,1}=\sum_{k=1}^{n} \min (dp_{j_k,0},dp_{j_k,1}) dpi,1=k=1∑nmin(dpjk,0,dpjk,1)
AcWing \text{AcWing} AcWing 323 323 323 战略游戏(带点权)
3. 最 小 支 配 集 3.最小支配集 3.最小支配集
选出最少的点,使得每个点要么被选、要么被它的相邻点支配
状态表示: d p i , j dp_{i,j} dpi,j 表示以 i i i为根的树,如果 j j j 为 0 0 0,表示在点 i i i不被支配,且将要被父节点支配,如果 j j j 为 1 1 1,表示在点 i i i 不被支配,且将要被子节点支配,如果 j j j 为 2 2 2,表示在点 i i i 支配
属性: Min \text{Min} Min
状态计算:
如果当前点 i i i 要被父节点支配,那么可以选择子节点或者选择该节点:
d p i , 0 = ∑ k = 1 n min ( d p j k , 1 , d p j k , 2 ) dp_{i,0}=\sum_{k=1}^{n}\min(dp_{j_k,1},dp_{j_k,2}) dpi,0=k=1∑nmin(dpjk,1,dpjk,2)
如果当前的点 i i i 要被子节点支配,那么就要枚举是哪个子节点 j j j 被选的方案最小( u k u_k uk 代表子节点的第 k k k 个子节点):
d p i , 1 = min ( d p i , 1 , d p j k , 2 + d p i , 0 − ∑ k = 1 n min ( d p u k , 1 , d p u k , 2 ) ) dp_{i,1}= \min( dp_{i,1},dp_{j_k,2}+dp_{i,0}-\sum_{k=1}^{n}\min (dp_{u_k,1},dp_{u_k,2})) dpi,1=min(dpi,1,dpjk,2+dpi,0−k=1∑nmin(dpuk,1,dpuk,2))
如果选当前的点 i i i,那么子节点 j j j 被 i i i 支配,或者选择子节点 j j j,或者子节点 j j j 被子节点的子节点 u u u 支配:
d p i , 2 = ∑ k = 1 n min ( d p j k , 0 , d p j k , 1 , d p j k , 2 ) dp_{i,2}=\sum_{k=1}^{n}\min(dp_{j_k,0},dp_{j_k,1},dp_{j_k,2}) dpi,2=k=1∑nmin(dpjk,0,dpjk,1,dpjk,2)
SDUT \text{SDUT} SDUT 4831 4831 4831 树的染色
AcWing \text{AcWing} AcWing 1077 1077 1077 皇宫看守(带点权)
参考文献: