摘要:"BZOJ原题链接" "洛谷原题链接" STL 本题可以直接使用$\mathtt{STL\ multiset}$水过去。 因为本题插入数的操作实际上就是将原数列分为$n$段,在每一段的末尾插入数,所以我们只需维护每一段的开头和末尾两个数,这样更新相邻差值时只需考虑插入数与原末尾和下一段的开头两个数的
阅读全文
摘要:"原题链接" 二分+差分 运用差分的思想,对于在$[l, r]$间租借$x$间教室的订单,在差分数组(设为$a[]$)中只需将$a[l] + x, a[r + 1] x$即可,最后只需要前缀和一下就可以计算出某一天需要租借的教室数量,再与当天可租借的教室数量比较大小就可以知道是否可行。 于是我们成功
阅读全文
摘要:"原题链接" 每个点开一个权值线段树,然后用树上差分的方法修改,最后自底向上暴力线段树合并即可。 不过空间较大,会$MLE$,写个内存池就可以了。 cpp include include using namespace std; const int N = 1e5 + 10; const int M
阅读全文
摘要:"BZOJ原题链接" "洛谷原题链接" 线段树合并裸题。 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取$\min$即可。 对每个叶子节点建一棵动态开点线段树,然后向上合并并更新答案。 而逆序对可以在线段树合并的过程中算出来,因为是权值线段树,根据$mi
阅读全文