题目链接 题意 初始序列为全\(0\),可以对序列进行的操作为将\([l,r]\)整体\(+1\),问操作多少次后可以得到序列\(a\). 思路 显然,最优的策略即是先找到整个序列的最小值,整体加上这么多,于是序列分成了两块:找到左半边的最小值,左半边整体加上:找到右半边的最小值,右半边整体加上--然而这样的做法是\(O(n^2)\)的,怎么办呢? 法一:线段树 用线段树维护区间最小值,区间修改+区间查询. 复杂度\(O(nlogn)\). Code #include <bits/stdc++.…