背包dp
状压dp
常见集合处理
子集枚举
for (int s = init_sta; s >= 0; s = init_sta & (s - 1))
预处理全状态数值
// 以求和为例
for (int i = 0; i < maxbit; i++)
{
int h = 1 << i;
int v = a[i];
for (int j = 0; j < h; j++)
{
sum[h | j] = sum[j] + v;
}
} /learn/computer-science/xcpc-algorithm/dynamic-programming/template
动态规划相关板子
for (int s = init_sta; s >= 0; s = init_sta & (s - 1))
// 以求和为例
for (int i = 0; i < maxbit; i++)
{
int h = 1 << i;
int v = a[i];
for (int j = 0; j < h; j++)
{
sum[h | j] = sum[j] + v;
}
}