带修莫队
随便提几笔吧,时间不太充裕就不写太多了。
就是在区间的基础上再加上一个时间。
来个例题 数颜色|维护队列
直接就是考虑按照 \(l\) 所在块, \(r\) 所在块, \(t\) 的优先级排序,然后可以证明在块长取 \(n^{\frac{2}{3}}\) 时最优,可用最劣情况证明其复杂度。
然后就是稍微注意点细节就好,比如离线化问题的时候记得修改原数组之类的。
那么结合例题看下代码就大概能理解了吧。
code:
#include
using namespace std;
#define LL long long
#define file(a) freopen(#a".in","r",stdin),freopen(#a".out","w",stdout)
inline int read(){
int s=0,f=1;char ch=getchar();
while(ch<'0'||'9'