听不懂(悲)
DP知识
Sleeping Cows P
主要难点在提前钦定不用来匹配的牛,状态加一个0/1,代表当前点之前是否有被钦定的牛
若当前为牛棚,则
\(f_{i,j,0}=f_{i−1,j,0}+(j+1)f_{i−1,j+1,0}\)
\(f_{i,j,1}=(j+1)f_{i−1,j+1,1}\)
若当前为牛牛,则
\(f_{i,j,0}=f_{i−1,j−1,0}\)
\(f_{i,j,1}=f_{i−1,j,0}+f_{i−1,j,1}+f_{i−1,j−1,1}\)
不写滚动数组过法:关long long,只在乘法时乘1ll
构造数组
\(j+k+l=m\)
\(2*j+l=\sum b_i\)
Paired Up P
转移互不相交
记失配的牛
但复杂度是三维的,枚举i,j,l
所以要前缀和优化
Maximizing Root
从下往上
Swap and Maximum Block
思路:下标减1,做 01tire
从下往上第 k+2 层的两颗子树互换即可
\(f_{u,s,0/1/2/3} \rightarrow f_{u,s',*}\)
s:子树有没有被翻转,01串
s':\(0/1 + s\)
0/1/2/3:总和,最大前缀和,最大后缀和,最大子段和
密集子图
bfs
标签:7.16,子树,前缀,钦定,long,后记 From: https://www.cnblogs.com/badnuker/p/17558463.html