$Part\; 1$ 动态规划的初步认识
阶段、状态、转移$part\; 2$ 动态规划的简单优化
状态、转移、性质、脑洞$part\; 3$ 各类动态规划
树型、状压、数位、期望for(枚举u的孩子v) {
for(枚举u的连通块大小k) {
g[k] = f[u][k]+1;//g为临时数组
}
for(枚举u的连通块大小k) {
for(枚举v的连通块大小j) {
g[k+j] = min(g[k+j], f[u][k]+f[v][j]);
}
}
for(枚举u的连通块大小k) {
f[u][k] = g[k];
}
}
1<<k // 求2的k次方
x|(1<<k) // 把第k位置为1
x&~(1<<k) // 把第k位置为0
x^(1<<k) // 把第k位取反
(x>>k)&1 // 返回x的第k位
(x&-x) // 返回x的最低1位(返回2的次幂而非位数)
x&((1<<k)-1) // 保留最后k位
课后练习:luogu 2704 炮兵阵地
课后练习——luogu4127
课后习题:百度“codeforces 概率dp”大概有20~30道。
$part\; 4$ 动态规划的高级优化
矩阵、斜率、单调、数据结构