树上 DP
状压DP
常见位运算
__builtin_ffs(x)
:返回 x 的最后一位 1 的是从后向前第 几位,比如 7368(110011001000) 返回 4。
__builtin_clz(x):返回前导的 0 的个数。__builtin_ctz(x):返回后缀 0 的个数。__builtin_popcount(x):返回 x 中 1 的个数。__builtin_parity(x):返回 x 中 1 个数的奇偶性。状压的目的:消除后效性,需要记录足够多的信息.
考虑组合意义简化题目
注意,dp多可以考虑用贪心的思想来进行优化。
可以用size来优化树上背包时间复杂度。
原文:https://www.cnblogs.com/TianMeng-hyl/p/14726578.html