摘要:
给定一棵 $n$ 个点的树,点权为 $a_i$,求可删空连通块个数。可删空指连通块点集能通过每次删除两个点权不同的点最终删空,等价于点集大小为偶数且众数出现次数不超过点集大小的一半。解法先计算所有大小为偶数的连通块个数 $A$,再减去不可删空连通块个数 $B$(即众数出现次数超过一半的偶数大小连通块),答案为 $A - B$。使用树形 DP:dfs1 通过状态 $g[u][0/1]$ 统计子树 $u$ 中大小为偶/奇数的连通块数,得到 $A$;dfs2 针对每种颜色 $x$,设 $f[u][d]$ 表示子树 $u$ 中点权 $x$ 出现次数与半大小的差为 $d$ 的连通块数,只考虑 $d > 0$ 的情况,合并子树时使用背包优化,总复杂度为 $O(n^2)$。 阅读全文
posted @ 2025-09-07 20:54
wing_heart
阅读(8)
评论(0)
推荐(0)

浙公网安备 33010602011771号