分块
文章平均质量分 58
Freopen
这个作者很懒,什么都没留下…
展开
-
Comet OJ 序列(分解质因数卡常+平衡复杂度(分块))
题面首先考虑把分解质因数的复杂度从O(x+σ0(x))O(\sqrt x+\sigma_0(x))O(x+σ0(x))降低。可以写PollardRhoPollard_RhoPollardRho但是没必要。把x\sqrt xx以下的质因数预处理即可O(xlnx+σ0(x))O(\frac {\sqrt x}{\ln x} + \sigma_0(x))O(lnxx+σ0(x))...原创 2019-12-05 17:35:30 · 271 阅读 · 0 评论 -
牛客CSP-S提高组赛前集训营2 C-维护序列(分块)
n<=1e5n<=1e5n<=1e5,时限6s6s6s脑阔癌。真的就是大分块就完了。考场往上一看6s时限,考虑分块,发现这个存答案很困难,卡空间,考虑分块跨块询问的很简单,维护每种颜色(aia_iai)在每个块内的最左位置和最右位置,然后就可以简单O(nS)O(\frac nS)O(Sn)计算跨块的答案了。跨块的修改就是打区间覆盖标记。块内的答案一看(可能?)就只...原创 2019-11-01 15:24:45 · 278 阅读 · 0 评论 -
无删除莫队与二次离线莫队
大佬博客无删除莫队:没打过但是可以拿来凑数。不就是用可回退化(你一定需要看一看[十二省联考2019]希望)的莫队来。。。。skip。二次离线莫队:一开始看是ynoi的题以为没有啥可拓展性。然后看了上面那位大佬的博客才发现这个方法大有可为。莫队实际上是把O(m)O(m)O(m)个询问拆分成O(nm)O(n\sqrt m)O(nm)个询问的离线算法。那么每个(标准的)莫队可以分成3...原创 2019-06-29 19:41:36 · 621 阅读 · 0 评论 -
LOJ #2461. 「2018 集训队互测 Day 1」完美的队列(分块维护单调性)
题目详见 林旭恒《完美的队列》命题报告转化为求每次区间加入后所有被加入的点被彻底弹出的最早时间。然后发现区间相同插入时间不同时有单调性。分块,把每个区间分为n\sqrt nn个大块和n\sqrt nn个单点。(一个询问变成n\sqrt nn个询问)对于每个大块和每个单点都分别用two pointers处理出每个询问的答案。然后按颜色对时间区间取并,按输入时间插入可以省掉排序,...原创 2019-05-20 21:30:03 · 412 阅读 · 0 评论 -
LG P4278 带插入区间K小值(块状链表+值域分块)
题目这个博客是关于LG P4278的题解。这一点别有深意。原来BZOJ3065的替罪羊树套函数式线段树在LG被卡了。O(nn)O(n\sqrt n)O(nn)踩爆了O(nlog2n)O(n\log^2 n)O(nlog2n)风水轮流转,博主学分块。首先据说这个题是带插入的YNOI2018未来日记的弱化版。根据历史的进程。应该说YNOI2018未来日记是这个题不带插入的加强版。...原创 2019-03-21 22:51:25 · 316 阅读 · 0 评论 -
普通平衡树(块状链表)
实现了一下,比平衡树还是要短一些的。AC Code:#include<bits/stdc++.h>#define S 1005#define maxn 500005#define nxt B[x].rbusing namespace std;char cb[1<<18],*cs=cb,*ct=cb;#define getc() (cs==ct&&a...原创 2019-03-21 19:57:41 · 245 阅读 · 0 评论 -
分块研习
主要是因为两三个log\loglog的算法经常被分块秀死,博主不得已学习这种刷RK榜神器。下面用修改时间O()O()O()-查询时间O()O()O() -空间O()O()O() 来描述复杂度(对于分块,卡空间是很致命的)1.分块维护块内信息,询问查每一个块和散点。这种是最裸的也是最容易被搞出一个log\loglog算法的,没意思。O(1)−O(n)−O(n)O(1) - O(\sqr...原创 2019-03-21 22:17:40 · 185 阅读 · 0 评论 -
BZOJ 3744: Gty的妹子序列(分块)
题目求出块内的,跨块的,最后还有散对散的。具体看代码吧,无力.jpg为啥分块最后一块的大小不是S啊。调了3h。AC Code:#include<bits/stdc++.h>#define maxn 50005#define S 250using namespace std;int n,a[maxn],sb[maxn],sa[maxn];int ans1[S+5]...原创 2019-03-19 20:48:39 · 158 阅读 · 0 评论 -
高维莫队
对于n维的询问,将前n-1维值域按S的大小分块最后1维按1的大小分块,排序时,比较两个询问,从小到大,一维一维的,块编号小的放前,块编号大的放后,相等就看下一维。时间消耗是:(n-1)qS + Ln/Sn-1 (L代表询问值域)当S = (Ln/(n-1)/q)1/n时取到最小举例子:BZOJ 2639: 矩形计算L <= 200 , n=4,q=1000004维...原创 2018-11-02 17:12:08 · 450 阅读 · 0 评论 -
高维偏序问题的解决与应用
K维偏序问题,在OI中指的是对于n个K维空间中的点,定义偏序a<b为点a的每一维都小于(或小于等于)b,对于每个点a,求有几个点j满足j<a一维偏序:sort或者是树状数组||线段树||Splay。。。。。。二维偏序:按第一维sort+树状数组||二维数据结构||CDQ分治(其实此时和归并排序差不多了)应用:最长上升子序列???三维偏序:按第一维sort+树状数组+CDQ分治|...原创 2018-11-01 15:51:33 · 1130 阅读 · 0 评论 -
HDU 6331 Walking Plan
题意:n个点的图,求s到t经过至少k条边的最短路。1<=n<=50 , 1<= k <=10000设恰好经过k条边的最短路为dis[k][i][j]预处理很容易,但是TLE发现dis[a+b][i][j] = min(dis[a][i][k] + dis[b][k][j])总是成立发现预处理时间复杂度过大,处理询问复杂度过小(O(1))考虑把复杂度移...原创 2018-07-31 13:19:46 · 202 阅读 · 0 评论 -
雅礼集训Day4T1convex(O(1)删除恢复)
题意:有n个点的凸包,现在给出这n个点的一个排列,m次询问一段区间的点构成的凸包面积。n,m<=150000既然序列都给出来了,明显就是让你莫队。。。。。。但是插入一个点的复杂度是O(logn)的。。。。。。没有信仰过不了。考虑先把凸包建好,发现用数组表示双向链表的方法,删除一个点的复杂度为O(1)(凸包内没有别的点所以可以直接用双向链表维护)可是莫队中不仅有删除还有插入,可以不插入吗?当然...原创 2018-07-05 18:24:59 · 156 阅读 · 0 评论 -
雅礼集训Day2T2 color(各种暴力优化) (O(1)RMQ的妙用)
题意:长度为n的数列A,m次询问,每次给出一个区间,求区间内不同数字的种数。还有一堆恶心的限制。1.强制在线(暴力优化神器莫队直接被ban)2.内存8M (并不是特别暴力的主席树和线段树被疯狂针对)3.1s,上述所有数字都是1e5级别的(暗示考点:卡常数(底层优化))。part1:卡内存怎么办?tsy大佬说过,当线段树被卡内存时就要分块。tsy大佬还说过,分块这么简单,不就是个优化的暴力吗?par...原创 2018-07-02 22:09:55 · 204 阅读 · 0 评论 -
BZOJ 4129: Haruna’s Breakfast
经典题目。分块还是有点用的,可以支持O(1)单点修改,O(sqrt(n))区间查询,我想反之亦然吧。AC code#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#include<cmath>#define maxn 100005#defi...原创 2018-04-12 10:21:45 · 195 阅读 · 0 评论 -
一种按点划分,对于随机数据表现良好的非常规二维数据结构(二维KD树)
二维KD-Tree是一种将平面用一种玄学的方式分割成多份的数据结构其操作功能强大1:找最近||最远点,利用矩形区域计算最大最小可能值来剪枝,随机数据期望复杂度O(logn) ,构造数据。。。。。。不过可以用来优化求min/max之类的DP,DP式中数据应该近乎随机。2.覆盖关键点的二维线段树问题:如 BZOJ4154——IPSC2015 Generating Synergy当问题可以转化为二维平面...原创 2018-03-15 16:13:27 · 248 阅读 · 0 评论 -
K-D Tree
就是用一些的方法把平面按点分成若干块,方便你剪枝(这思路真暴力)因为是剪枝暴力,复杂度是O(能过),可以拿来干超级多的事情CQOI2016 : K远点对#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#include<queue>#incl...原创 2018-03-15 14:35:42 · 285 阅读 · 0 评论