![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
差分
ljq真的不能再吃了
珍惜每一天
展开
-
【P1083 借教室】 差分数组 + 二分答案
P1083 题意就是n天 每天有r[i]个教室可用 问你有m个申请 必须按顺序来 从Q[i].l 到 Q[i].r 要用Q[i].d个教室 如果都能满足 输出0 如果有按顺序哪个不能满足输出不能满足 我们首先发现答案继续单调性 那么可以二分 二分的时候check数组如何满足检验呢? 其实就是差分数组加一下 前缀和求每天的实际使用教室值和最大教室判断一下check即可 check函数为此 bool ...原创 2019-04-04 01:00:26 · 173 阅读 · 0 评论 -
【P3128】最大流 Max-flow 树上差分之点差
P3128 题解 因为是点差 所以 s−−>ts -- > ts−−>t的路径都加一等价于 cnt[s]++,cnt[t]++,cnt[LCA]–,cnt[fa[Lca]]–; 所以我们只要用两个dfs处理出来 然后统计一下cnt的最大值即可 /* if you can't see the repay Why not just work step ...原创 2019-04-04 12:01:47 · 177 阅读 · 0 评论 -
【P3258 松鼠的家】 树上差分 - 点差分
P3258 其实和上一道P3218 有点像的 但是我们处理的时候要知道 除了arr[1]这个点 他下面所有的点再访问是不会吃糖的 比如你到了2 从2开始 实际上只有一颗糖 所以我们要从 2 - n cnt[arr[i]]–; 代码如下 /* if you can't see the repay Why not just work step by step rubbish i...原创 2019-04-04 12:37:31 · 176 阅读 · 0 评论 -
【P1438 无聊的序列】 差分/硬核线段树 区间加等差数列
P1438 题意 给一个区间加一个 首相为k 公差为d 的等差序列 求单点值 先建一颗差分线段树 如果我们给某一个区间 l 到 r 加上一个首相为k 公差为d 的等差序列 是不是相当于 给 l 这个点的差分数组 加上 k l+1 到 r 的这段数组 加上d r+1 这个点差分数组加上 -(k+(r-l+1-1)*d) 然后再利用差分数组的前缀和恰好等于这个点的值 我们就可以直接query 加上原数...原创 2019-04-11 00:13:01 · 921 阅读 · 0 评论 -
【BZOJ 5028 小Z的加油店】 裴蜀定理
BZOJ 5028 题目给你这一段瓶子能倒出来的最小水 其实不就是 ax + by + cz +… km的最小整数解么 用裴蜀定理可知这个解就是他们的区间gcd 那么答案就转换成区间gcd 和 区间更新 线段树如果要维护这些东西 肯定是要超时的 那么我们怎么做呢? 我们知道 gcd(x,y) = gcd(x,y-x) gcd(x,y,z) = gcd(x,gcd(y,z)) 那么x->y的区...原创 2019-04-09 22:55:51 · 129 阅读 · 0 评论