分块
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【校内模拟】music(多重分块)(非常规大小分块)
简要题意不放了,强制在线主席树SB题一道,卡空间需要用分块做到 O(n)O(n)O(n) 空间。题解:由于发下来的题解几乎就是在口胡,我跑去UOJ群问了一下这道题的 O(n)O(n)O(n) 空间做法,幸运地得到了myh的教育,下面的做法就来自于myh神仙。先考虑对时间进行分块,块大小为 SSS,考虑把每块中会进行修改的位置拿出来,然后把原序列中所有 n/Sn/Sn/S 的倍数的位置拿出来...原创 2020-04-20 20:34:26 · 380 阅读 · 0 评论 -
【CF896E】Welcome home, Chtholly(分块)(并查集)
传送门题解:分块。由于值域很小,考虑用并查集维护块内相同的数个数以及当前的值,整块修改的时候只需要看一下当前块的值域RRR是否大于两倍当前的修改参数vvv,如果R≥v∗2R\geq v*2R≥v∗2,则我们将[1,v][1,v][1,v]的并查集向上合并并打标记,否则我们将上面的向下合并,于是我们可以在O(a)O(a)O(a)的时间内将值域大小减少aaa,均摊复杂度是对的。操作常数,整块...原创 2019-09-27 18:52:31 · 335 阅读 · 0 评论 -
【CQOI2017】小Q的表格(莫比乌斯反演)(分块)
传送门题解:首先很显然地,我们发现题目的限制可以转化为f(a,b)ab=f(b,a)ab=f(a,a+b)a(a+b)\frac{f(a,b)}{ab}=\frac{f(b,a)}{ab}=\frac{f(a,a+b)}{a(a+b)}abf(a,b)=abf(b,a)=a(a+b)f(a,a+b)进而发现,对于任意a,ba,ba,b,我们可以得到g(gcd(a,b))=f(a,b)...原创 2019-08-27 22:04:33 · 133 阅读 · 0 评论 -
【HDU5283】Senior's Fish(分块)(均摊分析)
传送门题解:首先是坐标切割,由于坐标移动单调,我们直接在某条鱼穿过渔网的某条线(向两端无限延伸后的)的时候重构整块。调整块长卡常,现在是HDU rank1。比那些写线段树的不知道快到哪里去了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#d...原创 2019-08-09 16:12:46 · 165 阅读 · 0 评论 -
【校内模拟】火神的鱼(分块)(均摊分析)
传送门是不可能有的了题解:联赛组今天考试的T3,觉得很有科学打脸价值就来写一写。首先正解是一个需要四棵线段树的O(nlogn+mlogn)O(n\log n+m\log n)O(nlogn+mlogn)做法,常数巨大。本着科学打脸观。我写了一个O((n+m)n)O((n+m)\sqrt n)O((n+m)n)跑过了大多数人的线段树。其实卡常就是按照常规卡了一下,莫名其妙就跑进了3...原创 2019-07-25 20:00:25 · 196 阅读 · 0 评论 -
【洛谷P5113】Sabbat of the witch(分块)(基数排序)
传送门吐槽:漏判了一个条件导致操作全部撤销的时候回不到原始状态而WA了将近一页半。虽然题目说了但是好像是解密之后的。。。题解:出题人非常好心地在题目里面提示这道题需要用分块。那就分块嘛。这个撤销操作还是比较新颖的东西,感觉以前都没有在分块题目里面遇到过。如果只有区间覆盖和区间求和显然是SB题。然后加一个撤销就很扯。考虑用一个栈来维护对的赋值操作,当撤销的时候直接从栈顶往下...原创 2019-07-29 11:52:16 · 659 阅读 · 0 评论 -
【ZJOI2017】【BZOJ4877】【洛谷P5211】字符串(分块)(字符串哈希)(线段树)
洛谷传送门BZOJ传送门题解:写ZJOI真是作死的绝佳方式于是一个下午只写了一道题。首先是毒瘤至极的性质分析。对于字符串SSS的某个后缀vvv,我们称它是SSS的好后缀当且仅当存在某个字符串TTT,使得vTvTvT能够成为STSTST的最小后缀。通过一波莫名其妙让人吐血的分析我们可以知道SSS的好后缀最多只有O(log∣S∣)O(\log |S|)O(log∣S∣)个。引理:...原创 2019-07-15 19:15:41 · 213 阅读 · 0 评论 -
【YNOI2017】【BZOJ4867】舌尖上的由乃(分块)(DFS序)
传送门解析:代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constnamespace IO{ inline char get_char(){ static cs int Rlen=1<<20|1; ...原创 2019-04-17 12:06:05 · 271 阅读 · 0 评论 -
2018.10.14【BZOJ3343】教主的魔法(分块)(二分查找)
DarkBZOJ传送门解析:这还是一个区间问题。思路:一看是一个区间问题,似乎要用线段树,但是由于每次询问的CCC在变化,所以线段树无法维护足够的信息来回答询问。说线段树对询问分块维护的你是魔鬼吗?这里带来一种好想好写的做法,分块,小部分暴力,整块块内排序+二分查找我们维护一个bbb数组,是分块排序后的aaa数组,对于每个块维护加法标记,整块询问的时候直接二分查找(lowerbou...原创 2018-10-14 16:13:41 · 150 阅读 · 0 评论