题解:P12865 [JOI Open 2025] 冒泡排序机 / Bubble Sort Machine
Otomachi_Una_ · · 题解
众所周知,冒泡排序的过程是能维护的。
不妨假设
具体地,假设
把询问变成两个前缀作差,我们把元素分成两类。一类是前缀最大值,一类是非前缀最大值。
对于非前缀最大值,处理是简单的。这些元素一直在减少,每次都在整体往前移动。用个树状数组就得了。
然后是前缀最大值元素。我们每轮冒泡排序都会加入新的前缀最大值。
假设当前前缀最大值的下标是
也就是,前缀最大值下标(注意,我们不关心元素具体值)的变化过程大概就是每次向前整体移动
由于前缀最大值元素是单调上升的,于是我们可以用线段树算出这个前缀有多少个前缀最大值元素(记为