分块
文章平均质量分 76
Frozen_Guardian
已退役菜鸡Acmer
展开
-
HDU多校1 - 6959 zoto(莫队+树状数组/值域分块)
题目链接:点击查看题目大意:在二维平面内有 nnn 个点,表示为 (i,f[i])(i,f[i])(i,f[i]),需要回答 mmm 次询问,每次询问会给出一个矩形,问矩形内有多少个不同的 yyy 值题目分析:对于 xxx 轴而言可以视为区间询问,每次询问的是“颜色”个数,因为可以离线,所以不难想到对 xxx 轴套上莫队。莫队需要支持增加、删除和询问操作,对应到 yyy 轴上也就是单点修改、区间查询,不难想到对 yyy 轴套上树状数组。因为数据较水,所以到此就产生出了一种可以AC的做法,就是莫队套树状数原创 2021-07-28 21:13:15 · 270 阅读 · 0 评论 -
2021牛客多校2 - WeChat Walk(分块)
题目链接:点击查看题目大意:给出 nnn 个人,再给出 mmm 对好友关系,每个人都有一个朋友圈用来显示微信步数。现在有 qqq 次操作,每次操作会让某个人的微信步数增加,问最后对于每个人来说,在自己朋友圈内获得冠军的时间题目分析:暴力去想,因为每次都是单点更新,所以只会影响当前点和周围相邻点的朋友圈,但是这样会被菊花图卡成 O(n2)O(n^2)O(n2)不难往分块上去想,所以直接挂官方题解:按照题解这样实现细节很多,感觉如果没有参考别人代码的话很难写出来。但是同时题解将本题需要思考的一些突破原创 2021-07-23 21:15:16 · 289 阅读 · 6 评论 -
CodeForces - 1207F Remainder Problem(分块)
题目链接:点击查看题目大意:给出一个长度为 500000500000500000 的数组,初始时全部为 000,需要执行 nnn 次操作,每次操作分为两种类型:1 x y1 \ x \ y1 x y:ax+=ya_x+=yax+=y2 x y2 \ x \ y2 x y:统计∑i∈R(x,y)ai\sum_{i \in R(x,y)}a_i∑i∈R(x,y)ai,其中 R(x,y)R(x,y)R(x,y) 是 [1原创 2020-12-22 21:48:43 · 198 阅读 · 0 评论 -
牛客 - 牛半仙的妹子Tree(按询问分块+RMQ求LCA)
题目链接:点击查看题目大意:给出一棵有 n 个节点的树,需要执行 m 次操作:1 x:点 x 被染色,且随后每一秒染色的区域都会向外扩展一个单位 2 x:清空所有的染色 3 x:问点 x 是否被染色题目分析:因为可以离线,所以考虑按照询问分块,首先用序列自动机求出每次操作后的下一次操作 2,然后分两种情况处理:如果两次操作 2 的间隔大于 sqrt( m ),直接暴力 bfs 去模拟,每一块的时间复杂度为 O( n ),均摊之后是 O( sqrt( m ) * n ) 如果两次操作 ..原创 2020-10-27 21:19:12 · 277 阅读 · 0 评论 -
HDU多校1 - 6756 Finding a MEX(分块+二分+树状数组)
题目链接:点击查看题目大意:给出一个 n 个点和 m 条边的无向图,每个点都有一个权值,现在需要执行q 次操作,每次操作分为两种类型:1 pos val :将第 pos 个点的权值修改为 val 2 pos :询问第 pos 个点相邻的所有点的权值组成的集合的 mex题目分析:只能说数据水了,如果数据拉满 std 的复杂度应该是会 TLE 的很显然的几个结论是:设点 u 的度数为 du[ u ] ,则 mex( u ) 的答案一定小于等于 du[ u ] 度数大于等于 sqrt( n.原创 2020-07-23 02:02:13 · 452 阅读 · 0 评论 -
POJ - 3468 A Simple Problem with Integers(分块)
题目链接:点击查看题目大意:给出一个长度为 n 的数列,再给出 m 次操作,每次操作分为两种情况:C l r d:区间 [ l , r ] 内的数字都加上 d Q l r :查询 [ l , r ] 内的区间和题目分析:分块的做法比较直观,将长度为 n 的数列分为 sqrt( n ) 个长度为 sqrt( n ) 的独立部分,对于查询和修改:如果 l 和 r 位于同一个部分内,则直接遍历即可 如果 l 和 r 位于不同的部分内:记 ll 和 rr 分别为第几个部分 遍历 [ ll + .原创 2020-05-23 18:00:52 · 269 阅读 · 0 评论 -
洛谷 - P4168 [Violet]蒲公英(分块+离散化)
题目链接:点击查看题目大意:给出一个长度为 n 的数列,再给出 m 次查询,每次查询区间 [ l , r ] 内的众数,要求强制在线题目分析:对于这个题意来说,如果允许离线的话,完全可以用莫队当模板题水过去,但强制在线的话就需要考虑如何分块了这里只讲一下如何实现大蓝书上的第二个方法吧首先设将数列 n 分成 T 块,每块的长度为 n / T ,接下来可以预处理出 mode[ l ][ r ] ,代表包含第 l 块到第 r 块在内的这段区间上的众数是多少,时间复杂度为 O( nT) ,空间复杂.原创 2020-05-24 02:14:21 · 423 阅读 · 0 评论