![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
差分
文章平均质量分 62
seez
njfu
展开
-
牛客寒假训练营 4 C (差分)
原题链接由于数据范围是 1e5,然后每个彗星出现的时间都是一段区间,其实可以想到差分的思想运用差分对一段区间快速的修改,最后前缀和一下本题的思路就是定义一个时间轴,对于红彗星,蓝彗星分别存储,每次出现都对区间进行一次修改,最后就可以看出一段区间是不是有彗星出现#include <iostream>#include <algorithm>using namespace std;const int N = 2e5 + 10;int a[N], b[N];...原创 2022-02-12 23:03:22 · 246 阅读 · 1 评论 -
牛客寒假训练营 2 B(差分,并查集)
题意:有n个点,m条边,每次可以把m条边里面选一个放进入图中,然后每次可以使极大联通子图的权重+1,求最少权重+1的操作次数分析:由于min(5*n,m),那么所有边一定能够放进入图中,限制条件没有用限制条件:每次只能同时操作一个集合内的点 最后的所有需求都要减少为0由于每次只能同时操作一个集合内的点,那么可以想到并查集的思想,用并查集维护100. 增减序列(差分+贪心)_qq12323qweeqwe的博客-CSDN博客并查集扩展域:值域,维护一个集合共同的值由增减序列的..原创 2022-02-06 21:24:05 · 487 阅读 · 0 评论 -
101. 最高的牛(差分)
先给点我们一个最高牛的高度和不同牛的关系,求所有牛的最大身高如果给定两头牛的关系,说明两头牛中间所有牛都是比他们矮的,要求最大高度,就只要让中间所有牛高度-1,表示中间所有牛都比他们矮,但是每天牛遍历一遍太慢了,所以使用差分数组优化有三个问题,如下1.怎么求差分数组如图,给定了1,5之间相互看得见,说明中间所有牛高度都要-1,就让b[2]--,b[5]++如图,假如在1,6互相看得见之前,1,4彼此也看得见,这个意思就是说[2,3]所有牛都比1,4矮,同时[2,5]所有牛...原创 2022-01-01 12:25:39 · 424 阅读 · 0 评论 -
100. 增减序列(差分+贪心)
假如给我们一个序列,并计算他们的差分数组则假设p为差分数组(不包括b[1],从b[2]开始)中正值的总和 q为差分数组中负值的总和P=4 q=0有四个操作情况1: 2<=i,j<=n,选b[i]和b[j]这样会改变b[2],b[3]…b[n]中两个数的值,尽量多用(最好)b[l]+=c b[r+1]-=c情况2:i=1,2<=j<=n 选b[...原创 2021-12-14 21:58:36 · 1125 阅读 · 1 评论 -
差分总结(一阶,二阶)
差分算法是一种基础算法介绍:差分算法的特点在于支持区间修改(O(1)的时间复杂度),能够通过求前缀和获得修改后的原数组,O(n),所以差分算法一般都是需要多次修改后,再进行一次前缀和求和的情况下先看看一维差分一维差分一维差分分给一阶序列差分和二阶差分一般使用差分数组来优化的话都是求一阶差分,二阶差分主要是用来替代树状数组和线段树一阶差分一阶差分一般应用于:需要多次区间修改,少量单点查询的情况下,这时候一般可以用差分来优化。可以总结为1.差分应用题...原创 2021-12-24 17:28:16 · 16107 阅读 · 0 评论 -
P5026 Lycanthropy(二阶差分)
长模拟#include <iostream>#include <algorithm>using namespace std;const int N = 1E6+5;int a[N], b[N];int main(){ int n, m; cin >> n >> m; for (int i = 0;i < n;i++) { int v, y; cin >> v >> y; a[y] ...原创 2021-12-24 17:26:27 · 1220 阅读 · 0 评论