CF1494

https://codeforces.com/contest/1494

A,B 暴力

C 拆成正负的思路很显然。我们仅分析正的情况,因为负的取绝对值后等效于正。我们考虑每次都是推 1,考虑可以钦定推完后 1 的位置。又考虑到没有被推到的后缀的初始贡献要加上,这与被推到的最远点有关。

于是自然 2 种钦定方式:钦定 1,钦定有推到的最远位置。

分别思考下,发现后者好做点。那么只需要钦定 \(b_j\),考虑原先 \(a_i\le b_j\) 的都要被推,且最后形成的一定是 \(b_j\) 为右端点的一段连续区间。后面的初始答案可以后缀和预处理,然后这一部分可以转为区间数 \(b\) 的数量。

D 考虑父亲权值小于儿子权值,那么初始找到最大的,新建一个点然后搜下去。倘若当前子树的 2 个点的 \(a\) 为当前根,那么显然 2 个点不同子树。反之,相同子树。到叶子时直接返回叶子,否则需要合并子树,即新建当前最大值的对应点。

E 考虑好像是 NPC 的,倘若直接爆搜的话。那么说明我们性质找的还不够。考虑简单环上找性质?小范围试试。。然后就切了。这种题有点诈骗的意思。。。

image

F *2900 不会!

posted @ 2022-08-10 21:02  FxorG  阅读(19)  评论(0编辑  收藏  举报