操作$[l,r]$,$\sum_{i=l}^ra[i]=\frac{a_l+..+a_r}{r-l+1}$,求任意操作,尽可能使$a[]$序列字典序最小。
- 最后形成的数列一定是单调递增的关系。
假设前面符合要求,新加入一个数,如果它能使靠近它的那块一样的数的平均数下降,它一定要加入那块,如果那块的平均数比又比前一块小继续合并。
单调关系我们就使用单调栈
- $s.first$记录块内$sum$
- $s.second$记录块内$num$
代码
1 |
|
操作$[l,r]$,$\sum_{i=l}^ra[i]=\frac{a_l+..+a_r}{r-l+1}$,求任意操作,尽可能使$a[]$序列字典序最小。
假设前面符合要求,新加入一个数,如果它能使靠近它的那块一样的数的平均数下降,它一定要加入那块,如果那块的平均数比又比前一块小继续合并。
单调关系我们就使用单调栈
1 | #include <iostream> |