题目链接

  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 142题 环形链表 II(Linked List Cycle II) Java语言求解

    题目描述: 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 p ...

  2. python复制多层目录下的文件至其他盘符对应的目录中

    一.需求 app打包需要打入一些H5进去,以便更快的加载页面.这些H5文件是散落在各个文件夹中的[如下列所示],偶尔各个文件夹还需新增文件,每次新增一个文件,需要改动jenkins上job脚本,比较麻 ...

  3. RocketMQ - 基础知识

    RocketMQ简介 RocketMQ是阿里开源的消息中间件,它是纯java开发,具有低延迟.高吞吐量.高可用性和适合大规模分布式系统应用的特点.从名字可以看出Rocket火箭,代表RocketMQ主 ...

  4. node跨域方法

    第一种:jsonp 参看用nodejs实现json和jsonp服务 第二种:res.wirteHeadnode部分 var http = require('http') var url = requi ...

  5. 【Amaple教程】5. 插件

    Amaple 拥有非常强大插件功能,这也是它的突出功能之一,Amaple插件一般表现为功能块(函数)或功能块(包含一系列函数和属性的Object对象),它除了支持Amaple规范定义的插件外,还支持所 ...

  6. 每日一点:git 与 github 区别

    絮絮叨叨在前:以前的公司,都用svn 进行代码管理.最近我那程序猿先生真的受不了我,强迫我使用tortoiseGit. 一开始对于 git 和 github 傻傻分不清,干脆自己整理资料,总结一下. ...

  7. 利用Java实现指定文件夹下的照片以自定义格式移动

    前几天本猿的大学同学,一个漂亮的小姐姐工作时遇到了一个问题,她的需求是,在公司局域网的电脑上下载大量的图片重命名成指定得1.2.3.....以此类推,需要当天完成,我就临时给写了一个小demo. 我的 ...

  8. Idea安装教程以及环境变量配置

    IDEA安装以及JDK环境变量 环境变量配置 下载jdk

  9. go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)

    strconv实现了go中基本数据类型与string之间的转换. How to use in go go doc:https://godoc.org/strconv import "strc ...

  10. h5 移动端适配方案思考

    基础概念 CSS像素(CSS pixels) 这个是浏览器使用的抽象单位,用来精确度量网页上的内容.平时经常写的width:100px;height:100px;都是与设备无关的. 设备独立像素(de ...