带修改莫队
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[BZOJ 2120]数颜色:带修改莫队
点击这里查看原题与普通莫队相比,本题需要单点修改,因此需要分别记录查询和修改两种操作。 修改操作需要记录:pos:修改的位置x:修改前的值查询操作需要记录:p:上一个修改操作的序号id:在输入数据中的顺序l,r:查询的区间查询操作依然是按块排序,只不过每次查询时要处理好修改操作。 用一个vis数组记录该位置是否在目前的区间内,如果要修改一个在队中的位置,需要先出队,然后修改该位置的原创 2017-04-08 16:13:19 · 482 阅读 · 0 评论 -
[BZOJ 2453]维护队列:带修改莫队
点击这里查看原题类似于BZOJ 2120/*User:SmallLanguage:C++Problem No.:2453*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;const int M=1e4+5;int n,m,tot,cnt,num[M*100],原创 2017-04-10 14:53:09 · 362 阅读 · 0 评论 -
[BZOJ 3052][wc2013]糖果公园:树上带修改莫队
点击这里查看原题此题乃莫队系列问题的集大成者,既需要树上莫队,又需要修改,注意以下问题:因为带修改,块大小为n^(2/3)修改时必须严格按时间顺序,对于当前时间大于询问时间的,时间必须倒着遍历;小于的,时间必须正着遍历(没注意到这个问题所以WA了好几次)/*User:SmallLanguage:C++Problem No.:3052*/#include<bits/stdc++.h>原创 2017-05-23 17:54:51 · 623 阅读 · 0 评论 -
[BZOJ 4129]Haruna’s Breakfast:树上带修改莫队+分块
点击这里查看原题依然好题,不过这题时限比糖果公园短很多,坑点是查询mex值的时候不能O(n)去查,会超时,因此需要sqrt(n)分块,记录每个块内是否每个值都有至少一个。/*User:SmallLanguage:C++Problem No.:4129*/#include<bits/stdc++.h>#define ll long long#define inf 999999999us原创 2017-05-23 20:16:53 · 438 阅读 · 0 评论