20210118A组总结
T1貌似是二分,用线段树也可以做,随便切
T2迭代加深+剪枝(优美的暴力)
考虑数列中相邻数的差值,在最终的结果中差值全为1
每次的翻转只会改变一个差值,所以“差不为一的个数”
≤
\le
≤ 剩余步数
由此剪枝
T3:
取原图的一个dfs树,
易知没有除返祖边之外的非树边,
利用欧拉序,设
f
x
,
s
f_{x,s}
fx,s为已经覆盖完欧拉序在
x
x
x之前且不是
x
x
x祖先的点,
x
x
x祖先的状态为
s
s
s时的最小代价
s
s
s为三进制状态,表示 选了/没选但被覆盖/没选且没被覆盖
转移就好了