CF1535

A:氵

B:排序对两个偶数没影响,对两个奇数没影响。唯一的影响是可能原本偶数在后面,调到前面贡献变多。所以把所有偶数弄到前面就行。

C\(dp[i]\) 表示前 \(i\) 个字符以第 \(i\) 个字符结尾,有多少个子串符合条件。

\(s[i]=?\)\(dp[i]=dp[i-1]+1\)

\(s[i]=0,1\),分类:

如果上一个不是 ? 的位置和第 \(i\) 个位置不符合要求(通过奇偶性判断一下上一个非 ? 位置和第 \(i\) 个是否应该相等),那 \(dp[i]=i-pos\)\(pos\) 是上一个非 ? 位置;否则\(dp[i]=dp[i-1]+1\).

D

一颗满二叉树,1 就是取左子树的答案,0 就是取右子树的答案,? 就是取两个子树的答案之和作为自身子树的答案。

修改一个结点,其实只有这个结点到根的路径上的结点答案可能变化。

E

题目性质 \(c_{p_i}<c_i\) 指明了一条贪心的道路:优先选靠近根的。

用倍增,倍增可以很好的处理增加一个叶节点后,它的 \(2^{?}\) 级祖先是谁。

每次询问用倍增不断找询问节点最浅的还有黄金的祖先,买下对应的黄金。如果买够了就退出循环,没买够就继续找询问结点最浅的还有黄金的祖先……

posted @ 2024-02-05 14:20  FLY_lai  阅读(1)  评论(0编辑  收藏  举报