QOJ8542. Add One 2 题解

· · 题解

:::::info[题目基本信息] 考察:笛卡尔树,数学,贪心(个人认为上位紫)。
题目简介:
给定序列 \{a_n\},有一个序列 \{b_n\} 初始全为 0,你有两种操作:

问最后要使得 \forall i\in[1,n],b_i\ge a_i 的最小代价是多少。
数据范围:

这时,它会对上面的值贡献 2
所以我们贪心考虑快速找到序列中的最短的极长内凹相等连续段,这个我们建出笛卡尔树,然后把每个子树按子树大小排到桶里存储它们能操作的次数,循环减少值即可。
这样我们就做完了这道题。
时空复杂度均为 \Theta(n)

code