【洛谷】【线段树】P1438 无聊的数列

本博客主要介绍了洛谷上的一道题目,涉及线段树的应用。题目要求在给定数列上进行等差数列的区域更新操作和单点查询操作。线段树的解法需要维护差分数组,区间更新通过pushdown和Add操作完成,同时注意特殊情况的处理,如L==R或R+1==n的情况。
摘要由CSDN通过智能技术生成

题目背景

无聊的YYB总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的YYB想出了一道无聊的题:无聊的数列。。。(K峰:这题不是傻X题吗)

题目描述

维护一个数列{a[i]},支持两种操作:

1、1 L R K D:给出一个长度等于R-L+1的等差数列,首项为K,公差为D,并将它对应加到a[L]~a[R]的每一个数上。即:令a[L]=a[L]+K,a[L+1]=a[L+1]+K+D,

a[L+2]=a[L+2]+K+2D……a[R]=a[R]+K+(R-L)D。

2、2 P:询问序列的第P个数的值a[P]。

输入输出格式

输入格式:

第一行  两个整数数n,m,表示数列长度和操作个数。

第二行  n个整数,第i个数表示a[i](i=1,2,3…,n)。

接下来的m行,表示m个操作,有两种形式:

1 L R K D

2 P 字母意义见描述(L≤R)。


输出格式:

 

对于每个询问,输出答案,每个答案占一行。


输入输出样例

输入样例#1: 

5 2
1 2 3 4 5
1 2 4 1 2
2 3

输出样例#1:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值