莫队算法
SC.ldxcaicai
我很菜=_=
展开
-
洛谷小B的询问(莫队)
P2709 小B的询问 题目描述 小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。 输入输出格式 输入格式: 第一行,三个整数N、M、K。 第二行,N个整数,表示小B的序列。 接下来的M行,每行两个整数L、R。 ...原创 2018-07-01 10:54:29 · 174 阅读 · 0 评论 -
2018.08.14 bzoj4241: 历史研究(回滚莫队)
传送们 简单的回滚莫队,调了半天发现排序的时候把m达成了n。。。 代码: #include<bits/stdc++.h> #define N 100005 #define ll long long using namespace std; ll cnt[N],tot[N],val[N],ans[N],rk[N],mp[N],tmp; int n,m,blo[N],block,...原创 2018-08-14 13:48:47 · 204 阅读 · 0 评论 -
2018.08.12 bzoj5301: [Cqoi2018]异或序列(前缀和+莫队)
传送门 简单的异或前缀和处理+莫队统计答案。 惊奇的发现无论开不开long long都能跑过。。。 代码: #include<bits/stdc++.h> #define N 100005 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdi...原创 2018-08-12 21:23:09 · 165 阅读 · 0 评论 -
2018.09.16 bzoj3757: 苹果树(树上莫队)
传送门 一道树上莫队。 先用跟bzoj1086一样的方法给树分块。 分完之后就可以莫队了。 但是两个询问之间如何转移呢? 感觉很难受啊。 我们定义S(u,v)S(u,v)S(u,v)表示u->v这条路径的点集,T(u,v)T(u,v)T(u,v)表示S(u,v)S(u,v)S(u,v) xorxorxor lca(u,v)lca(u,v)lca(u,v),同时我们令上一个询问是S...原创 2018-09-16 17:43:00 · 198 阅读 · 0 评论 -
2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)
传送门 好题。 考察了莫队和组合数学两个知识板块。 首先需要推出单次已知n,mn,mn,m的答案的式子。 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数。 显然iii之后的数都是单调递减且连续的。 所以后面的方法是1种。 考虑第111~i−1i-1i−1个位置。 显然放法数为∑j=1i−1f[j]\sum _{j=1} ^{i-1}f[j]∑j=1i−1f[j] 又因为f[...原创 2018-10-23 21:52:39 · 209 阅读 · 0 评论 -
2018.10.29 bzoj4564: [Haoi2016]地图(仙人掌+莫队)
传送门 根据原图建一棵新的树。 把原图每一个环上除了深度最浅的点以外的点全部向深度最浅的点连边。 然后可以搞出来一个dfsdfsdfs。 这个时候我们就成功把问题转换成了对子树的询问。 然后就可以对权值分块用莫队做了注意如果不用分块而是用树状数组维护是O(nlognsqrt(n))的 代码: #include<bits/stdc++.h> using namespace std; in...原创 2018-10-29 15:05:22 · 331 阅读 · 1 评论 -
2018.10.29 NOIP训练 数据结构(带修改莫队)
传送门 带修莫队板题。 直接按照经典写法做就行了。 代码原创 2018-10-29 15:12:11 · 121 阅读 · 0 评论 -
2018.11.07 NOIP训练 L的鞋子(权值分块+莫队)
传送门 乱搞题。 我直接对权值分块+莫队水过了。 不过调了30min30min30min发现ststst表挂了是真的不想说什么233. 代码原创 2018-11-07 23:40:22 · 156 阅读 · 0 评论 -
bzoj3809: Gty的二逼妹子序列(莫队+权值分块)
传送门 题意:多组询问,问区间[l,r]中权值在[a,b]间的数的种类数。 看了一眼大家应该都知道要莫队了吧。 然后很容易想到用树状数组优化修改和查询做到O(mnlogamax)O(m\sqrt nlog_{a_{max}})O(mnlogamax)的时间复杂度。 然后发现可以上一波权值分块,这样的话可以平衡结合降低时间复杂度到O(mn+mamax)O(m\sqrt n+m\sqrt {a...原创 2019-01-08 14:29:37 · 200 阅读 · 0 评论