![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
SC.ldxcaicai
我很菜=_=
展开
-
BZOJ4765: 普通计算姬(dfs序+分块+树状数组)
4765: 普通计算姬 Time Limit: 30 Sec Memory Limit: 256 MB Description “奋战三星期,造台计算机”。小G响应号召,花了三小时造了台普通计算姬。普通计算姬比普通计算机要厉害一些。普通计算机能计算数列区间和,而普通计算姬能计算树中子树和。更具体地,小G的计算姬可以解决这么个问题:给定一棵n个节点的带权树,节点编号为1到n,以root为根,...原创 2018-06-30 22:05:55 · 405 阅读 · 0 评论 -
bzoj3809: Gty的二逼妹子序列(莫队+权值分块)
传送门题意:多组询问,问区间[l,r]中权值在[a,b]间的数的种类数。看了一眼大家应该都知道要莫队了吧。然后很容易想到用树状数组优化修改和查询做到O(mnlogamax)O(m\sqrt nlog_{a_{max}})O(mnlogamax)的时间复杂度。然后发现可以上一波权值分块,这样的话可以平衡结合降低时间复杂度到O(mn+mamax)O(m\sqrt n+m\sqrt {a...原创 2019-01-08 14:29:37 · 172 阅读 · 0 评论 -
2018.11.07 NOIP训练 L的鞋子(权值分块+莫队)
传送门乱搞题。我直接对权值分块+莫队水过了。不过调了30min30min30min发现ststst表挂了是真的不想说什么233.代码原创 2018-11-07 23:40:22 · 151 阅读 · 0 评论 -
2018.10.25 uestc上天的卿学姐(计数dp)
传送门看了DZYODZYODZYO的题解之后发现自己又sbsbsb了啊。直接dpdpdp是O(2d)O(2^d)O(2d)更新,O(1)O(1)O(1)查询或者O(1)O(1)O(1)更新,O(2n)O(2^n)O(2n)查询的。然后我就不会了233.显然可以利用分块暴力的思想。每次枚举前半段来计算当前答案,然后枚举后半段来更新dpdpdp数组。这样效率O(n∗2d2)O(n*2^{\...原创 2018-10-25 10:47:05 · 140 阅读 · 0 评论 -
2018.10.10 bzoj3343: 教主的魔法(分块)
传送门分块经典题目。维护块内的数从小到大递增,然后每次查询的时候对于小块直接暴力,大块就二分查值。对于修改小块同样直接暴力,注意修改完之后小块要重新排序,大块由于同时加上一个值不会影响相对关系因此直接打区间标记即可。注意查询大块的时候用来查的值要先减去区间标记。代码:#include<bits/stdc++.h>#define N 1000005using names...原创 2018-10-10 08:28:04 · 164 阅读 · 0 评论 -
2018.09.30 bzoj2741: 【FOTILE模拟赛】L(分块+可持久化01trie)
传送门数据结构经典题。首先考虑另外一种询问方式。已知权值val,在区间[1,n][1,n][1,n]中找一个数使得valvalval^a[i]a[i]a[i]最大。这个可以直接01trie。那么变成区间[l,r][l,r][l,r]之后显然可以用可持久化01trie。但是现在不知道权值val。所以我们用分块预处理把时间复杂度变成O(n∗sqrt(n)∗logn)O(n*sqrt(n...原创 2018-09-30 16:05:52 · 183 阅读 · 0 评论 -
2018.09.30 bzoj2821: 作诗(Poetize)(分块)
传送门分块经典题目。先将数列分块。然后预处理出每两个块之间有多少个数出现了正偶数次。这样查询的时候对于中间的完整块直接用预处理出的数组搞定。剩下的暴力枚举求解。代码:#include<bits/stdc++.h>#define N 100005using namespace std;inline int read(){ int ans=0; cha...原创 2018-09-30 10:35:13 · 144 阅读 · 0 评论 -
2018.09.26 bzoj5218: [Lydsy2017省队十连测]友好城市(回滚莫队)
传送门比较简单的一道回滚莫队吧。每次询问用bitset优化kosaraju统计答案。就是有点难调。然后向dzyo学长学习了回滚莫队的一种简洁的实现方式,就是直接建立一个sqrt(m)∗sqrt(m)sqrt(m)*sqrt(m)sqrt(m)∗sqrt(m)的动态数组按块存储询问。这样好写得多。还有就是学习了korasaju用bitset优化的写法。代码:#include&amp;amp;amp;lt;b...原创 2018-09-26 16:26:40 · 315 阅读 · 0 评论 -
2018.09.17 atcoder Tak and Hotels(贪心+分块)
传送门一道有意思的题。一开始想错了,以为一直lowerlowerlower_boundboundbound就可以解决询问,结果交上去TLE了之后才发现时间复杂度是错的。但是贪心思想一定是对的,每次向前尽量推进一定可以得到最优解。于是我想起了一道叫做弹飞绵羊的题,感觉这道题可以类比。码了一会一直WA感觉不太对,发现有一个细节写错了233。A了之后在csdn上翻了翻题解。发现都是倍增优化...原创 2018-09-17 23:52:13 · 192 阅读 · 0 评论 -
2018.09.16 bzoj3757: 苹果树(树上莫队)
传送门 一道树上莫队。 先用跟bzoj1086一样的方法给树分块。 分完之后就可以莫队了。 但是两个询问之间如何转移呢? 感觉很难受啊。 我们定义S(u,v)S(u,v)S(u,v)表示u->v这条路径的点集,T(u,v)T(u,v)T(u,v)表示S(u,v)S(u,v)S(u,v) xorxorxor lca(u,v)lca(u,v)lca(u,v),同时我们令上一个询问是S...原创 2018-09-16 17:43:00 · 190 阅读 · 0 评论 -
2018.09.16 bzoj1086: [SCOI2005]王室联邦(贪心)
传送门 就是给树分块。 对于一个节点。 如果它的几棵子树加起来超过了下限,就把它们分成一块。 这样每次可能会剩下几个节点。 把它们都加入栈中最顶上那一块就行了。 代码:#include<bits/stdc++.h>#define N 1005using namespace std;inline int read(){ int ans=0; ch...原创 2018-09-16 16:25:48 · 187 阅读 · 0 评论 -
洛谷小B的询问(莫队)
P2709 小B的询问 题目描述 小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。 输入输出格式 输入格式: 第一行,三个整数N、M、K。 第二行,N个整数,表示小B的序列。 接下来的M行,每行两个整数L、R。 ...原创 2018-07-01 10:54:29 · 147 阅读 · 0 评论 -
bzoj2388: 旅行规划(分块+凸包)
传送门分块好题。题意:维护区间加,维护区间前缀和的最大值(前缀和指从1开始的)。思路:考虑分块维护答案。我们把每个点看成(i,sumi)(i,sum_i)(i,sumi)答案一定会在凸包上,于是我们每个块维护一个凸包。然后发现 每次前缀和可以分区域修改,在区域内的相当于给所有点的连线加一个斜率,对于区域外的相当于打一个addaddadd标记,于是给每个块维护整体加标记,斜率增加的...原创 2019-01-20 17:15:53 · 216 阅读 · 0 评论