luogu P4887 莫队二次离线】的更多相关文章

珂朵莉给了你一个序列$a$,每次查询给一个区间$[l,r]$ 查询$l≤i<j≤r$,且$ai⊕aj$的二进制表示下有$k$个$1$的二元组$(i,j)$的个数.$⊕$是指按位异或. 直接暴力莫队的话复杂度是$O(n\sqrt{m}\binom{14}{7})$, 有一种做法是莫队二次离线 考虑莫队的过程, 假设当前维护的区间为$[ql,qr]$ 若右端点移动到$r$, 那么答案的增量为 $\sum\limits_{k=qr+1}^r f(k,[ql,k-1])=\sum\limits_{k=q…
LINK:模板莫队二次离线 很早以前学的知识点 不过 很久了忘了. 考虑暴力 :每次莫队更新的时候 尝试更新一个点到一个区间的答案 可以枚举二进制下位数为k的数字 看一下区间内的这种数字有多少个. 不过这样每次移动的复杂度为 C(14,k)的. 考虑 将每次移动操作进行离线 答案进行差分. 那么只需要求出指针移动的变换量即可 由于左端点和右端点的变换量都是nsqrt(n)的 如果直接开空间这么存 空间复杂度nsqrt(n).吃不消. 考虑将一个f(L,[L+1,R])的这种形式的贡献进行前后差分…
题面传送门 莫队二次离线 mol ban tea,大概是这道题让我第一次听说有这东西? 首先看到这类数数对的问题可以考虑莫队,记 \(S\) 为二进制下有 \(k\) 个 \(1\) 的数集,我们实时维护一个桶 \(cnt_i\) 表示当前区间中值为 \(i\) 的数有多少个,那么加入一个数 \(v\) 的时候,答案会增加 \(\sum\limits_{y\in S}cnt_{y\oplus v}\),这样暴力莫队复杂度是 \(n\sqrt{n}\dbinom{14}{k}\),如果你过了我请你…
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4241 题意:N个int范围内的数,M次询问一个区间最大的(数字*出现次数)(加权众数),可以离线. 似乎正解是分块...因为可以离线&&时限大,用莫队算法卡常水过了(捂脸). 具体方法:先按莫队方法把询问排序,然后考虑转移. 把所有数字离散化,记录每个数的(数字*出现次数),当我们加入/拿走一个数的时候,更新这个值,并维护二叉堆. 复杂度:\(O(N \sqrt N log N)\)…
2016-05-09 UPD:学习了新的DFS序列分块,然后发现这个东西是战术核导弹?反正比下面的树分块不知道要快到哪里去了 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 50003; const int M = 100003; void read(int &k) { k = 0; in…
hnoi 2016 标签:题解 莫队 考虑左端点左移以及右端点右移产生的贡献 这样就可以由 \([l, r]\) 转移到另外的 \(4\) 个区间 \(f_{l, r}\) 表示右端点在 \(r\), 左端点在 \([l, r]\) 内的答案,这个可以压掉一维 \(pre_{i}\) 表示 \(i\) 前面第一个比 \(a_{i}\) 小的数的位置 \(bhd_{i}\) 表示 \(i\) 后面第一个比 \(a_{i}\) 小的数的位置 考虑计算贡献 \(S\) 也就是右端点右移产生的贡献 显然…
XOR and Favorite Number time limit per test: 4 seconds memory limit per test: 256 megabytes input: standard input output: standard output Bob has a favorite number k and ai of length n. Now he asks you to answer m queries. Each query is given by a pa…
A1206. 小Z的袜子 时间限制:1.0s   内存限制:512.0MB   总提交次数:744   AC次数:210   平均分:44.44 将本题分享到:        查看未格式化的试题   提交   试题讨论 试题来源 2010中国国家集训队命题答辩 问题描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不…
2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit: 6367  Solved: 2537[Submit][Status][Discuss] Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col.为了满足墨墨的要求,你知道你需要干…
小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬.你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子.当然,小Z希望这个概率尽量高,所以他可能会询问多个(L,R)以方便自己选择…
胡小兔的良心莫队教程:莫队.带修改莫队.树上莫队   在开始学习莫队之前,照例先甩一道例题:BZOJ 1878 HH的项链. 题意:求区间内数的个数,相同的数只算一次. 在我关于这道题的上一篇题解中,我使用了主席树来在线做这道题:在洛谷的一道类似题中,我使用了分块:而如果不要求在线,这道题还有一种极其好写的方法——莫队. 什么是莫队? 莫队不是一种叫做莫的队列(我第一次听到这个名字时竟然是这么理解的 -_-|||),它是以发明人前国家队队长莫涛——“莫队”的名字命名的. 它是一种传说中“能解决一…
莫队例题. 莫队学习:https://www.cnblogs.com/Paul-Guderian/p/6933799.html 本题 分子是sigma(c(sum[a[i]],2)),分母是sigma(l-r+1,2); 维护分子和即可. 莫队适用范围:离线,区间,区间转移到下一格O(1). #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<…
莫队算法,离线回答询问,按一定大小(sqrt(n*log(n))左右)将答案分块,按 ①左端点所在块②右端点 双关键字排序. 然后暴力转移. 转移的时候用树状数组. O(n*sqrt(n)*log(n)). 注意:①在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数. ②在一列数的后面删除一个数,逆序对数会减少 数列中比它大的数的个数. ③在一列数的前面添加一个数,逆序对数会增加 数列中比它小的数的个数. ④在一列数的前面删除一个数,逆序对数会减少 数列中比它小的数的个数. #in…
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 10299  Solved: 4685[Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两…
题目传送门 /* 莫队算法:求出[l, r]上取出两只相同袜子的个数. 莫队算法是离线处理一类区间不修改查询类问题的算法.如果你知道了[L,R]的答案,可以在O(1)的时间下得到 [L,R-1]和[L,R+1]和[L-1,R]和[L+1,R],4个while是精华! 对于莫队算法我感觉就是暴力.只是预先知道了所有的询问.可以合理的组织计算每个询问的顺序以此来降低复杂度. 详细解释:http://blog.csdn.net/bossup/article/details/39236275 */ #i…
CF 86D 莫队(卡常数) D. Powerful array time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output An array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, al + 1..…
题目传送门:小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬.你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子.当然,小Z希望这个概率尽量高,所以他可能会询问多个…
http://acm.hdu.edu.cn/showproblem.php?pid=5145 初探莫队,就是离线排序后的暴力,但是效率大大提高,中间要除法取模,所以用到了逆元. #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> #define LL long long #define MOD 1000000007 us…
题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 为了满足墨墨的要求,你知道你需要干什么了吗? 输入格式 第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数. 第2行N个整数,分别代表初始画笔排中第i支画笔的颜色. 第3行到第2+M行,每行分别代表墨墨会做的一件事情,格式见题干部…
题面 传送门 题解 lxl大毒瘤 我们考虑莫队,在移动端点的时候相当于我们需要快速计算一个区间内和当前数字异或和中\(1\)的个数为\(k\)的数有几个,而这个显然是可以差分的,也就是\([l,r]\)的询问可以拆成\([1,r]-[1,l-1]\) 我们考虑莫队移动指针的过程,以\([l,r]\)移动左指针到\(p\)为例,要减去的答案是\(l\)和\([1,r]-[1,l-1]\),\(l+1\)和\([1,r]-[1,l]\),...,总的来说,我们我们要对于\([1,r]\)这个前缀计算…
二次离线莫队. 终于懂了 \(lxl\) 大爷发明的二次离线莫队,\(\%\%\%lxl\) 二次离线莫队,顾名思义就是将莫队离线两次.那怎么离线两次呢? 每当我们将 \([l,r]\) 移动右端点到 \(a_{r+1}\) 的时候,发现贡献为 \([1,r]-[1,l-1]\) 对 \(a_{r+1}\). \([1,r]\) 对 \(a_{r+1}\) 的贡献可以 \(O(n\log n)\) 预处理出来,那么我们只需要处理 \([1,l-1]\) 对 \(a_{r+1}\) 的贡献. 那么…
题目: 洛谷 5398 当我刚学莫队的时候,他们告诉我莫队能解决几乎所有区间问题: 现在,当我发现一个区间问题似乎难以用我所了解的莫队解决的时候,他们就把这题的正解叫做 XXX 莫队.--题记 (以上皆为瞎扯,纯属虚构,请勿当真) 分析: 先转化一下题目:如果允许每次询问都暴力把区间扫一遍,那么每扫到一个数 \(i\) ,就统计已经扫过的部分中有多少个 \(j\) 满足 \(a_j\) 是 \(a_i\) 的因数(即取数对 \((i,j)\) )或倍数 (即取数对 \((j,i)\) ).注意,…
题面 传送门 题解 维包一生推 首先请确保您会二次离线莫队 那么我们现在的问题就是怎么转移了,对于\(i\)和前缀\([1,r]\)的贡献,我们拆成\(b_i\)和\(c_i\)两部分,其中\(b_i\)表示\(i\)的因数个数,\(c_i\)表示\(i\)的倍数个数 \(c_i\)非常好处理,插入\(a_i\)的时候直接暴力枚举它的所有因子\(d\),并令\(c_d++\)就好了,预处理之后复杂度上界是\(O(\sqrt{n})\)的 然而\(b_i\)就显得非常辣手--因为如果\(b_i\)…
题目描述 小$C$在家中开垦了一块菜地,可以抽象成一个$r\times c$大小的矩形区域,菜地的每个位置都种着一种蔬菜.秋天到了,小$C$家的菜地丰收了. 小$C$拟定了$q$种采摘蔬菜的计划,计划采摘区域是菜地的一个子矩形,你需要帮助他计算每种计划的美味度,美味度等于每种蔬菜在采摘区域出现次数的平方和. 输入格式 第一行三个正整数$r,c,q$.接下来$r$行每行$c$个正整数,第$i+1$行第$j$个数为$a_i,j$,表示每个位置的蔬菜种类.接下来$q$行,每行$4$个正整数$x_0,y…
3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1072  Solved: 292[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)…
1878: [SDOI2009]HH的项链 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 2701 Solved: 1355 [Submit][Status][Discuss] Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变得越来越长.有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同 的…
3809: Gty的二逼妹子序列 Time Limit: 35 Sec  Memory Limit: 28 MBSubmit: 868  Solved: 234[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题.   对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数.   为了方便,我们规定妹子们的美丽度全都在[1,n]中.   给定一个长度为n(1<=n<=10…
BZOJ_3809_Gty的二逼妹子序列 && BZOJ_3236_[Ahoi2013]作业 _莫队+分块 Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=10000…
1.莫队算法 TLE 80 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) using namespace std; ,M=; int h[N],n,m,a[N],ans[M]; struct node{ int l,r,id; bool operator<(const node&b)const{ if(h[l]==h[b.l])return r<b.r; return…
题目链接 luogu P4688 [Ynoi2016]掉进兔子洞 题解 莫队维护bitset区间交个数 代码 // luogu-judger-enable-o2 #include<cmath> #include<bitset> #include<cstdio> #include<cstring> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar();…