
莫队算法
文章平均质量分 81
cillyb
这个作者很懒,什么都没留下…
展开
-
HDU 5213 Lucky(莫队+容斥)
题意:给你n个数和一个k,现在q次询问,每次给你两个区间L~R, U~V, 问你从L~R中取一个x,从U~V中取一个y,使 得x+y = k的方案数。 N(1≤N≤30000) M(1≤M≤30000) Li,Ri,Ui,Vi(1≤Li≤Ri 思路:这题的每次询问有两个区间,不好操作,因为这题的方案数区间与区间之间具有可加性,也就是说询问L~R和 U~V,我们可以求出四个区间,再原创 2017-08-11 01:24:28 · 366 阅读 · 0 评论 -
BZOJ 2038 小Z的袜子(hose) (莫队算法入门题)
思路:第一个莫队题,感觉莫队对离线处理好强。。。如果我们已知[l,r]的答案,能在O(1)时间得到[l+1,r]、[l,r-1]、 [l-1,r]、[l,r+1]的答案(不一定O(1)也可以,因为有时需要套下其他数据结构,复杂度变为n*sqrt(n)*logn 有时也是能接受 的),即可使用莫队算法。时间复杂度为O(n*sqrt(n))。 对于这题:询问L~R。设颜色为x,y,z..原创 2017-08-10 01:11:33 · 756 阅读 · 0 评论 -
CodeForces 617E XOR and Favorite Number(莫队)
题意: 给你n个数,m次询问,询问给你(l,r),问你满足l ≤ i ≤ j ≤ r, ai^(ai+1)^...aj = k的区间数。 思路:因为又是区间又是没修改的询问,很容易想到莫队,但是怎么O(1)转移呢,可以利用异或的前缀和,具体思路可 以看官方题解: We have array a. Let's calculate array pref (pref[0] =原创 2017-08-11 23:35:30 · 382 阅读 · 0 评论 -
Codeforces Round #136 (Div. 1) B. Little Elephant and Array(简单莫队)
题意:给你n个数,m次询问,每次询问一个区间[l, r],问这个区间内元素出现个数等于元素本身的有几个。(n, m 思路:裸的莫队,因为每个数比较大,离散化下就好了。 代码: #include using namespace std; typedef long long ll; const int maxn = 1e5+5; int n, m, unit, tmp; int原创 2017-10-07 19:15:25 · 371 阅读 · 0 评论 -
51nod 1290 Counting Diff Pairs(莫队+树状数组)
题意:一个长度为N的正整数数组A,给出一个数K以及Q个查询,每个查询包含2个数l和r,对于每个查询输出从A[i]到A[j]中,有多 少对数,abs(A[i] - A[j]) (2 思路:看到询问区间内满足条件的对数,容易想到莫队,条件是abs(A[i] - A[j]) 代码: #include using namespace std; typedef lon原创 2017-10-24 18:39:50 · 469 阅读 · 0 评论