![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
莫队
lsr_yali
中国人寿,你值得拥有
展开
-
BZOJ 2038小z的袜子
题意:给一个序列,区间询问选两数相同的概率。解:莫队算法按 n√\sqrt n分块,询问先按左端点在块中位置,再按右端点位置排序,处理时每个询问间暴力转移,可以证明是O(nn√)O(n\sqrt n)的代码:#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<vector> #includ原创 2017-02-26 08:48:31 · 219 阅读 · 0 评论 -
BZOJ 3781小B的询问
题意小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。解裸莫队代码#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<原创 2017-02-26 08:53:57 · 303 阅读 · 0 评论 -
Codeforces 617E XOR and Favorite Number
题意给出n个数,m个询问和k,区间询问有多少个子区间的异或和等于k解首先求出异或前缀和,若[L,R]子区间[i,j]异或和为k,则val[i-1]^val[j]=k,所以可以转化为[L-1,R]中val[i]^val[j]=k,进一步转化即k^val[j]=val[i],现在考虑莫队算法,每增加一个元素,就相当与增加了c[val[j]^k]个子区间(c[x]表示当前查询区间内前缀异或和为x的个数),原创 2017-02-26 15:52:55 · 275 阅读 · 0 评论 -
BZOJ 3757 苹果树
题意神犇家门口种了一棵苹果树。苹果树作为一棵树,当然是呈树状结构,每根树枝连接两个苹果,每个苹果都可以沿着一条由树枝构成的路径连到树根,而且这样的路径只存在一条。由于这棵苹果树是神犇种的,所以苹果都发生了变异,变成了各种各样的颜色。我们用一个到n之间的正整数来表示一种颜色。树上一共有n个苹果。每个苹果都被编了号码,号码为一个1到n之间的正整数。我们用0代表树根。只会有一个苹果直接根。有许许多多的人来原创 2017-02-26 19:23:39 · 453 阅读 · 0 评论