随笔分类 -  基础算法----分块(莫队)

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