分块
ljq真的不能再吃了
珍惜每一天
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷P2257 YY的GCD 懵逼乌斯繁衍
P2257 题意T组 输入 n m 求1 - n之间 与 1 - m之间gcd为质数的数 我们知道gcd 有性质 d|(gcd(a,b)) 则 d|a d|b 第一道懵逼钨丝学的别人做法是这样推的 $$ f\left( gcd\left( a,b \right) \right) \,\, \\ f\left( x \right) \,\,=\,\,\underset{d|gcd\left(...原创 2019-03-27 17:57:38 · 164 阅读 · 0 评论 -
【BZOJ 1101 Zap】 懵逼钨丝繁衍
BZOJ 1101 $$ \text{答案其实就是求区间内}\underset{i=1}{\overset{n}{\Sigma}}\underset{j=1}{\overset{m}{\Sigma}}\left[ gcd\left( i,j \right) \,\,=\,\,d \right] \\ \text{上一篇博文介绍了}\left[ gcd\left( i,j \right) \,\...原创 2019-03-27 18:48:44 · 182 阅读 · 0 评论 -
【loj 6277】 区间修改 单点查询
loj 6277 复杂度还是设为sqrt(n) 区间加就相当于暴力修改 和中间一段延迟数组区间加 如果x y 本身就在一个块内 那么就不需要加第二次 /* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq */ #include <cstdio...原创 2019-04-17 14:56:59 · 336 阅读 · 0 评论 -
【Loj 6278】区间加 找小于x的个数
Loj 6278 其实用均值不等式能分一个更好的块出来 但是还是用sqrt(n) 乱搞一下 我们首先知道 你加还是一个加法 只不过加的时候要对两边边角修改的值重新排序 那么你找 两边边角你就是暴力找 对于中间的用二分查找 注意是upper_bound(arr[i]-1) 因为可能会有很多重复的值 /* if you can't see the repay Why not just ...原创 2019-04-17 16:15:06 · 392 阅读 · 0 评论 -
【Loj 6279】区间加 区间找x的前驱
Loj 6279 其实这题和上题有异曲同工之妙 当然可以用set去维护了 而且能完成更多骚操作 但是本着上题的代码改改就能过的思想 还是拿上题的代码拿来改了 注意特判一下 如果第一个都比你这个v小了 那么你没必要找了 否则upper_bound(arr[i]-1) 得到的地址还要减 1 才是所求的元素 一开始那个建1 放在外面没发现 WA到死 /* if you can't see the...原创 2019-04-17 16:29:23 · 336 阅读 · 0 评论 -
【Loj 6280】 区间加 区间求和
Loj 6280 题意 其实这题就是第一题拿来改一下 很骚的一点就是我们用一个sum数组去维护每个段的和 单点修改的时候sum数组也需要改 否则sum数组不需要改 一开始没注意到这个地方 就WA了 /* if you can't see the repay Why not just work step by step rubbish is relaxed to lj...原创 2019-04-17 16:45:10 · 196 阅读 · 0 评论 -
【Loj 6281】区间开方 区间求和
Loj 6281 对于区间开方 我们很容易知道一个性质 2^31-1那么大的数开五次方以后也会变成1 所以我们对于开方操作 只要看那个区间是不是最大值为1了 如果最大值为1说明就不需要开方了 否则你就去暴力修改每个点 然后统计求和也是一样的统计方法 /* if you can't see the repay Why not just work step by step ru...原创 2019-04-17 17:46:01 · 304 阅读 · 0 评论
分享