7.16后记
听不懂(悲)
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

浙公网安备 33010602011771号