ACM--莫队--数列分块
布呗之路
每个人都有不同的路,所以每个人都会孤独。
展开
-
数列分块入门 Libre OJ #6277~~6285
/**数列分块:http://hzwer.com/8053.html数列分块 1 :链接:https://loj.ac/problem/6277区间加法+单点查询分块:块的大小 (len): sqrt(n);对每个数属于第几块 pos[i] = (i-1) / sqrt(n) + 1;对于一段序列 一般分为三个部分 前半块 中间完整块 后半块;由于每个块的长度都是 ...原创 2018-07-25 19:03:57 · 713 阅读 · 0 评论 -
HDU 4391 Paint The Wall 分块HASH
/**HDU 4391 Paint The Wall 分块HASH链接:http://acm.hdu.edu.cn/showproblem.php?pid=4391区间计数+区间推平;分块HASH+标记;************tricks**********map<>mp;时间复杂度 竟然被称为O(1);vector维护升序 二分查log复杂度不可避免 感觉复杂度...原创 2018-10-05 21:14:19 · 263 阅读 · 0 评论 -
HDU 4638 Group 离线莫队
/**HDU 4638 Group 莫队链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638题意:区间连续数字的块数;离线莫队;判断当前数字移去或添加时对当前区间该数字左右端点的影响;***********tricks***********手写排序差评;*/#include<bits/stdc++.h>#define ...原创 2018-10-05 21:15:12 · 211 阅读 · 0 评论 -
UVA 12003 分块 区间计数+单点修改
/**UVA 12003链接:https://vjudge.net/problem/UVA-12003区间计数+单点修改*/#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=5e5+7;int n,q,blo,pos[maxn];ll s[maxn];v...原创 2018-10-05 21:15:59 · 205 阅读 · 0 评论 -
HDU 6273 Master of GCD 分块
/**HDU 6273 Master of GCD 分块链接:http://acm.hdu.edu.cn/showproblem.php?pid=6273题意:给定长度为n初始值为1的数组,给定m操作l r v,表示区间[l,r]乘以vans: 更新后数组的最大公约数;分析:分块 打标记,对于每个位置 ,记录每个位置2,3的个数;最后线性扫一遍即可;*/#include<...原创 2018-10-12 22:33:49 · 385 阅读 · 0 评论 -
HDU 4777 离线树状数组 + 思维
/**HDU 4777 离线树状数组 + 思维链接:http://acm.hdu.edu.cn/showproblem.php?pid=4777题意:区间不与其它数字互质的数的个数;分析:可先求解互质的数的个数 再用区间长度减去即可;维护数组l[i],r[i] : 第i个位置上的数 与左端数互质的数的最近位置 与右端数互质的数的最近位置;Get l[i] r[i]:对当前数进行质...原创 2018-10-12 22:34:38 · 325 阅读 · 0 评论 -
HDU 5213 Lucky 分块在线
/**HDU 5213 Lucky 在线分块;链接:http://acm.hdu.edu.cn/showproblem.php?pid=5213题意如上;其实在线分块只不过是用空间换时间而已;预处理出dp[i][j]:第i块到第j块的和为k的对数;对于完整块直接O(1)查询即可;对于非完整块 直接vector二分查找对应k-s[i]的数量即可;其余部分容斥还是和该题离线分析一样;...原创 2018-10-07 22:43:55 · 261 阅读 · 0 评论 -
HDU 5213 Lucky 离线莫队+容斥
/*HDU 5213 Lucky 离线莫队+容斥;链接:http://acm.hdu.edu.cn/showproblem.php?pid=5213题意:所给两个区间各选一个数的和为k的二元组的数量;分析:直接对两个区间进行莫队离线 显然是不可行的 移动的次数较多-->TLE;考虑将两个区间进行合并 容斥原理假设所选区间为 f(l,r) :表示区间[l,r]满足题意的二元组...原创 2018-10-07 22:44:30 · 203 阅读 · 0 评论 -
Codeforces Round #250 (Div. 1) D. The Child and Sequence 分块
/*Codeforces Round #250 (Div. 1) D. The Child and Sequence 分块链接:https://codeforces.com/contest/438/problem/D题意:op 1 : 区间加op 2 : 区间每个数取模op 3 : 单点修改;分块操作1 : 区间加 完整块O(1),非完整块暴力累加即可;操作2 : 取模 ...原创 2018-10-22 14:29:43 · 265 阅读 · 0 评论 -
5037 线段树练习4加强版 分块(卡常)
/**5037 线段树练习4加强版链接:http://codevs.cn/problem/5037/ op 1 区间修改 op 2 区间多少个数为k的倍数; 依据数据范围:可记录每个块内每个数字出现的次数 区间加操作,完整块依旧0(1),非完整块 直接暴力即可 注意细节;***********************************tricks*...原创 2018-11-06 18:49:17 · 530 阅读 · 0 评论 -
ZOJ 2112 分块+二分
/**链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112区间第k大+单点修改 对于每块进行排序,二分确定区间第k大的数;对于单点修改,修改当前的值,并且对当前块的值进行重新排序;时间消耗比较大;对于主席树的解法相对来说比较耗费空间*/#include<bits/stdc++.h>#d...原创 2018-09-26 22:46:18 · 285 阅读 · 0 评论 -
区间最小众数
/**在线区间最小众数 分块 1e5;*/#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e5+7;int n,blo,pos[maxn];vector<int>vec[maxn];int a[maxn],s[maxn],cnt[maxn]...原创 2018-09-25 11:42:44 · 599 阅读 · 1 评论 -
Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队裸题)
/**链接:https://codeforces.com/contest/617/problem/E题意:区间异或值为k的不同的区间的个数sum[i]:a[1]^a[2]^a[3]^....^a[i] 表示 前缀异或和存在a[l]^a[l+1]^a[l+2]^.....a[r]=sum[l-1]^sum[r];因此找这样的一个区间的话 由于区间是连续的(废话)如果sum[l-...原创 2018-07-29 23:25:55 · 428 阅读 · 0 评论 -
HDU - 1166 敌兵布阵 (分块)
/**链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166考虑是否用莫队或者分块 主要还是看数据范围吧 一般是<=1e5单点修改+区间查询 */#include<bits/stdc++.h>#define ll long longusing namespace std;/********************...原创 2018-07-30 10:50:55 · 265 阅读 · 0 评论 -
[Hnoi2010]Bounce 弹飞绵羊 (分块裸题)
/**链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2002题意:每个位置能够跳到下一个位置为i+s[i];单点询问:当前点跳出n 需要跳多少步;单点更新:将当前s[i]替换为val;分块裸题;*/#include<bits/stdc++.h>#define ll long longusing nam...原创 2018-07-31 17:50:03 · 232 阅读 · 0 评论 -
2038: [2009国家集训队]小Z的袜子(hose) (莫队裸题)
/**链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2038题意 : 如中文题面 求选择两个数字相同的概率;莫队裸题;***tricks***long long 分析当前区间左右相同数字选择变化 */#include<bits/stdc++.h>#define ll long longusing na...原创 2018-08-01 00:32:48 · 313 阅读 · 1 评论 -
区间最小众数
/**数列分块9链接:https://loj.ac/problem/6285查询区间最小众数;首先离散化一下比较方便。最小众数:完整的所有块的众数,和不完整块中出现的数。所以我们可以预处理dp(i,j)表示第 i 块到第 j 块的众数 n*sqrt(n)那么只要能快速得出一个数在某个区间内出现次数即可,每次只要比较至多2√n+1个元素的出现次数,这题就解决了。由于没有修改,只要离...原创 2018-07-28 13:18:19 · 737 阅读 · 0 评论 -
HDU 6333 Problem B. Harvest of Apples 莫队.....
/**链接:http://acm.hdu.edu.cn/showproblem.php?pid=6333题意:n个不相同的数取最多为m的取法数;NTT 多了一个log 好像直接测就T了 赛后了解正解为莫队时 G++;**********tricks****a[i].r a[i].1 输入. 分析组合数的l r 与 n m的状态转移关系;确定初始l r 值;*/...原创 2018-08-02 10:58:01 · 227 阅读 · 0 评论 -
Codeforces Round #136 (Div. 1) B. Little Elephant and Array 莫队裸题
#include<bits/stdc++.h>#define ll unsigned long longusing namespace std;/**********************************************Head-----Template****************************************/bool Finis...原创 2018-08-17 18:34:36 · 191 阅读 · 0 评论 -
HDU 6333 Problem B. Harvest of Apples 莫队.....
/**HDU 6333 Problem B. Harvest of Apples 莫队.....链接:http://acm.hdu.edu.cn/showproblem.php?pid=6333题意:n个不相同的数取最多为m的取法数;NTT 多了一个log 好像直接测就T了 赛后了解正解为莫队时 G++;**********tricks****a[i].r a[i].1 输...原创 2018-08-20 20:02:23 · 137 阅读 · 0 评论 -
Educational Codeforces Round 18 E. Colored Balls 分块思想+思维
/***链接:https://codeforces.com/contest/792/problem/E题意:给定长度为n的序列a[i],拆分每一个a[i];使得拆分的每一个a[i]得到的所有任意两个子序列的大小之差不超过1;求:最小的能拆分的满足条件的子序列的个数分析;枚举贪心即可 分块思想 每次设定块值的上限(size) 尽可能的越大越好,一旦满足条件 直接退出即可;******...原创 2018-09-24 15:17:41 · 236 阅读 · 0 评论 -
6469 线段树 分块
/**6469 线段树 分块链接:http://codevs.cn/problem/6469/ op 1 区间满足条件的数的个数; op 2 区间所有数取余; op 3 单点修改; magic number : 除本身外质因子构成等差数列,可打表获得; 区间所有数进行取余:维护一个块内的最大值,直接进行判断即可; 单点修改:改动某...原创 2018-11-06 19:03:07 · 395 阅读 · 0 评论