带修莫队


随便提几笔吧,时间不太充裕就不写太多了。

就是在区间的基础上再加上一个时间。

来个例题 数颜色|维护队列

直接就是考虑按照 \(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'