分块
ID_BePosit
如果今天不比昨天多做一点什么,那么明天还有什么意义。
展开
-
6277. 数列分块入门 1-区间修改-单点查询
#6277. 数列分块入门 1 加法标记,表示对整个区间的所有数加上标记值。于是做法就很简单了注意分块大小 sqrt( n/3 )较优 。 #include<bits/stdc++.h> using namespace std; #define maxn 56789 int n,a[maxn],l,r,j; int op,bi...原创 2018-12-25 16:44:18 · 244 阅读 · 0 评论 -
6278. 数列分块入门 2 -二分查找
#6278. 数列分块入门 2 思路:由于要查询小于x的数的个数,我们想到如果每个块内的元素是有序的话,可以直接二分很快得到结果。 于是对于每一块中的元素都保存在一个vector容器中,涉及到加法操作时,如果是完整的块, 直接打标记,否则暴力修改,然后注意把这个快重新排序。(可以考虑归并排序 优化) 查询时就是完整的块二分求解,否则暴力查询...原创 2018-12-25 19:50:20 · 261 阅读 · 0 评论 -
6279. 数列分块入门 3 - set维护
#6279. 数列分块入门 3 利用set,只是关心相对大小,于是相同的元素自然可以只保留一个,还能保证有序,其他操作类似 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #define maxn 123456 int n,op,l,r,c,ta...原创 2018-12-25 21:00:45 · 256 阅读 · 0 评论 -
6281. 数列分块入门 5 -区间开方
#6281. 数列分块入门 5 标记区间是否 已经全为1,暴力分块即可。 #include<bits/stdc++.h> using namespace std; #define maxn 56789 int a[maxn],n,sum[maxn],flag[maxn]; int b[maxn],op,l...原创 2018-12-25 22:28:09 · 353 阅读 · 0 评论