随笔分类 - 基础算法----分块(莫队)
摘要:SDOI2012 体育课 题意: [题目传送门][1] 题解: 我们考虑一个比较暴力的分块做法,对于每一个块,我们记录$Add[i]$表示第$i$这个块的加法标记,并且记录$Del[x]$为$x$这个位置的偏移量,最后$x$位置的真实值就是$a[x] + Add[x] x Del[x]$。然后我们记
阅读全文
摘要:SDOI2017 相关分析 题意: [题目传送门][1] 题解: 看了$loj$ 300多份代码,似乎我是唯二写分块的?刚开始感觉线段树比较难写,就开始码分块了。现在知道为什么没人写分块了…… 很容易想到将式子进行拆分,然后维护各种东西: 操作1:$a = \frac{\sum_{i = L}^{R
阅读全文
摘要:[TOC] codeforces 877F Ann and Books [题目传送门][1] 题意: 总共有$n$本书,每本书是数学的或者经济的。每本书中都有$a_i$个问题,给出$q$个询问,每次询问一个区间$[l,r]$内,满足数学书的总问题比经济书的总问题多$k$个的子区间有多少个。 $(1
阅读全文
摘要:[TOC] BZOJ1257 余数之和 [题目传送门][1] 题解 有点妙的一题。首先我们需要求的东西是$\sum_{i=1}^{n}k\%i$,然后我们可以对这个公式进行一下转化:$\sum_{i=1}^{n}(k (k/i) i)$,这个还是比较好意会出来的。然后我们把这个公式拆一下:$\sum
阅读全文
摘要:[TOC] BZOJ2809 dispatching [题目传送门][1] 题解 这道题目的题解很多,但大多都是用左偏树/主席书做的。这里再介绍一个莫队的做法。首先这题的题目就是在树上选定一个点,然后在这个点的子树中选出一些点,使这些点的$\sum c[i]$不超过$M$,求$Li $选中点的个数最
阅读全文
摘要:[TOC] BZOJ4320 Homework [题目传送门][1] 题解 看了题解之后发现是一个比较妙的分块+离线+并查集的做法。首先我们以30000为界,那么当询问$\leq 30000$的时候,我们就可以开个桶暴力进行查找。如果大于30000,那么我们就枚举30000以内$x$的倍数,然后通过
阅读全文

浙公网安备 33010602011771号