算法---莫队算法
pengwill97
C.S Master
展开
-
【练习】BZOJ 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
题意 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大的概率抽到两...原创 2018-07-31 15:33:11 · 132 阅读 · 0 评论 -
【练习】CodeForces86E Powerful array (莫队算法)
题意 翻译过来大意如下 给定长度为nnn的序列,ttt个询问。每个询问给定区间[l,r][l,r][l,r]。并定义KsKsK_s表示区间内值为sss的数字个数,请对于每个询问回答K2s∗sKs2∗sK_s^2 * s的值。 题解 没有修改操作,考虑离线做法,又因为对于已知区间,可以O(1)O(1)O(1)求出相邻区间,所以用莫队。 我写的比较挫,时间压线过的。。 代码 ...原创 2018-07-31 15:38:14 · 158 阅读 · 0 评论 -
【练习】BZOJ4241: 历史研究(回滚莫队)
题意 给定一个长度为nnn的序列,并提出qqq个询问,每次询问要求回答区间 [l,r][l,r][l,r] 内所有的权值与其出现次数的积的最大值。 题解 我一看,区间问题,无修改可以离线,上莫队妥妥的,但是仔细一想,当区间扩充时,可以O(1)O(1)O(1)的求出新区间答案,但是当区间缩小时,就不能O(1)O(1)O(1)做到了,莫队算法的复杂度不能得到保证。 这时候就可以考虑回滚莫队...原创 2018-07-31 21:15:07 · 241 阅读 · 0 评论 -
【练习】CodeForces617E XOR and Favorite Number (莫队算法)
题意 有n个数和m次查询,每次查询区间[l, r]问满足ai ^ ai+1 ^ … ^ aj == k的(i, j) (l <= i <= j <= r)有多少对。 题解 离线 莫队算法 代码 #include<bits/stdc++.h> using namespace std; typedef double db; typedef long long...原创 2018-08-02 21:05:39 · 137 阅读 · 0 评论