题目链接

  https://www.luogu.com.cn/problem/P5026

题意

  在一个长度为m的序列中,每次给一个下标x,和一个权值v,然后从x-v*3到x-v*2单调递增,从x-v*2到x单调递减,从x到x+v*2再次递增,然后x+v*2到x+v*3递减,递增递减都是斜率绝对值为1的直线。

分析

  刚学了差分趁现在还没忘赶紧把自己想的写下来

  看到这个其实很容易想到,对于每次修改,将其分为四个区间进行修改,由于它是单调递增的,所以让每个点对应的差分数组加一就行,这样就用到了线段树维护差分数组,但这样还是效率不是很高,我们仍然可以优化,对于同一区间内的每个点与前一个点的差值也是一定的,所以只要修改区间的两端就可以使整个区间内的差值改变,这样两个点的差值就可以构成一个差分数组,然后通过对这个差分数组求前缀和,可以得到每个点与前一个点的差值,再然后更新每个点值的前缀和数组,然后就可以得到这个点的值,输出就行,也就是rt,差分套差分。

  其实这个挺简单的,仔细想想也  很容易    困难想得出来

  最后是关于负数的问题,数组下标是不能为负数的,会RE,某大佬的做法是将原点左移,我试了试也是可以的,后来在洛谷上学习了一篇题解的做法,觉得这个很不错,直接用一个指针来代替数组,其实数组的实质也是指针,比如数组aa[10]->从指针aa开始往后数10个,所以只要让一个指针指向数组中间就能实现负下标的数组,感觉挺实用 好玩。

  

 #include<cstdio>
const int N=2e6;//记得开大点,不然会被一些极大的数据RE掉
int aa[N<<],bb[N<<];
int main(){
int *a=aa+N,*b=bb+N;
int m,n;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
int v,x;
scanf("%d%d",&v,&x);
a[x-v*+]++;
a[x-v*+]-=;
a[x+]+=;
a[x+v*+]-=;
a[x+v*+]++;
}
for(int i=-;i<=+m;i++)
a[i]+=a[i-],b[i]+=b[i-]+a[i];
for(int i=;i<=m;i++)
printf("%d ",b[i]);
return ;
}

小正方形的每个朋友有一个体积数值 vv,当体积为 vv 的一个朋友跳入水中,我们设入水点为 ii,将会导致 i - v + 1i−v+1 到 ii 的水位依次降低 1,2,\cdots,v1,2,⋯,v

同样地,第 ii 到 i + v - 1i+v−1 的水位会依次降低 v,v - 1,\cdots,1v,v−1,⋯,1.

相对应地,i - vi−v 的水位不变, i - v - 1i−v−1 到 i - 2 * vi−2∗v 水位依次增加 1,2,\cdots,v1,2,⋯,v, i - 2 * vi−2∗v 到 i - 3 * v + 1i−3∗v+1 水位依次增加 v,v - 1,\cdots,1v,v−1,⋯,1

同样,i + vi+v 水位不变,i + v + 1i+v+1 到 i + 2 * vi+2∗v 水位增加 1,2,\cdots,v1,2,⋯,v,i + 2 * vi+2∗v 到 i + 3 * v - 1i+3∗v−1 水位依次增加 v,v - 1,\cdots,1v,v−1,⋯,1

洛谷5026 Lycanthropy 差分套差分的更多相关文章

  1. [洛谷P3948]数据结构 题解(差分)

    [洛谷P3948]数据结构 Description 最开始的数组每个元素都是0 给出n,opt ,min,max,mod 在int范围内 A: L ,R ,X 表示把[l,R] 这个区间加上X(数组的 ...

  2. 洛谷P3275 [SCOI2011]糖果(差分约束,最长路,Tarjan,拓扑排序)

    洛谷题目传送门 差分约束模板题,等于双向连0边,小于等于单向连0边,小于单向连1边,我太蒻了,总喜欢正边权跑最长路...... 看遍了讨论版,我是真的不敢再入复杂度有点超级伪的SPFA的坑了 为了保证 ...

  3. 洛谷P3406 海底高铁[差分 贪心]

    题目背景 大东亚海底隧道连接着厦门.新北.博艾.那霸.鹿儿岛等城市,横穿东海,耗资1000亿博艾元,历时15年,于公元2058年建成.凭借该隧道,从厦门可以乘坐火车直达台湾.博艾和日本,全程只需要4个 ...

  4. 洛谷P3246 [HNOI2016]序列(离线 差分 树状数组)

    题意 题目链接 Sol 好像搞出了一个和题解不一样的做法(然而我考场上没写出来还是爆零0) 一个很显然的思路是考虑每个最小值的贡献. 预处理出每个数左边第一个比他小的数,右边第一个比他大的数. 那么\ ...

  5. 【洛谷】【lca+树上差分】P3258 [JLOI2014]松鼠的新家

    [题目描述:] 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n(2 ≤ n ≤ 300000)个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真 ...

  6. 洛谷P1600 天天爱跑步(差分 LCA 桶)

    题意 题目链接 Sol 一步一步的来考虑 \(25 \%\):直接\(O(nm)\)的暴力 链的情况:维护两个差分数组,分别表示从左向右和从右向左的贡献, \(S_i = 1\):统计每个点的子树内有 ...

  7. 【洛谷 P1645】 序列 (差分约束)

    题目链接 差分约束. 设\(s[i]\)表示前\(i\)个位置有多少个数,那么对于一个限制条件\((L,R,C)\),显然有 \[s[R]-s[L-1]>=C\] 于是连一条\(L-1\)到\( ...

  8. 洛谷P2680 运输计划——树上差分

    题目:https://www.luogu.org/problemnew/show/P2680 久违地1A了好高兴啊! 首先,要最大值最小,很容易想到二分: 判断当前的 mid 是否可行,需要看看有没有 ...

  9. 洛谷 P5019 铺设道路(差分)

    嗯... 题目链接:https://www.luogu.org/problem/P5019 首先简化一下题意: 给定一个长为N的数组,每次操作可以选择一个区间减去1,问最少多少次操作可以将数组中的数全 ...

随机推荐

  1. leetcode 209 3 滑动窗口

    class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { ,r=-; //由于数组是[]区间, ...

  2. Java Opencv 实现 中值滤波器

    原理 Note 以下原理来源于Richard Szeliski 的著作 Computer Vision: Algorithms and Applications 以及 Learning OpenCV ...

  3. seo搜索优化技巧02-seo问答推广怎么做?

    问答推广就是以用户的​‌‌角度去提问,这些问题内容就是用户搜索想要知道的.简单来说通过第三方平台站在用户的角度去帮助客户解答问题,同时附带自身的品牌和产品信息就是问答推广. 常见的问答平台有百度知道. ...

  4. 用python实现LBP特征点计算

    import cv2 import numpy as np def olbp(src): dst = np.zeros(src.shape,dtype=src.dtype) for i in rang ...

  5. Mozilla的 Firefox Graphics 团队向社区寻求重现WebRender bug的方法

    导读 Mozilla 的 Firefox Graphics 团队正在向社区寻求帮助,由于他们收到了一些随机发生的 UI 错误报告,却一直无法找出错误的重现步骤(STR),因此现在向外寻求社区用户的帮助 ...

  6. git常规使用命令笔记

    使用git也有不短的时间,这篇文章主要默写自己在提交代码经常使用的一些密令,仅供参考并不是教程. git log 查看日志 git branch 查看分值 git branch Name 新建一个Na ...

  7. vquery 一些应用

    // JavaScript Document function myAddEvent(obj,sEv,fn){ if(obj.attachEvent){ obj.attachEvent('on'+sE ...

  8. JVM 常用参数一览表(转)

    参数 默认值或限制 说明 参数 默认值 功能 -XX:-AllowUserSignalHandlers 限于Linux和Solaris,默认不启用 允许为java进程安装信号处理器,信号处理参见类:s ...

  9. Dubbo之服务暴露

    前言 本文 Dubbo 使用版本2.7.5 Dubbo 通过使用dubbo:service配置或@service在解析完配置后进行服务暴露,供服务消费者消费. Dubbo 的服务暴露有两种: 远程暴露 ...

  10. H5新特性之语义化标签

    一.为什么要增加新的语义化标签 在HTML 5出来之前,我们用div来表示章节,但是这些div都没有实际意义,这样的布局方式使我们的结构不够清晰,于是语义化标签应运而生. 二.何为语义化标签 顾名思义 ...