混凝土粉末

博客讨论了两种处理区间操作的方法。第一种方法涉及在序列上挂载询问,按操作顺序进行,当询问值小于等于零时,记录相应操作。第二种方法通过考虑每个位置受影响的操作,使用线段树来动态维护影响。例子中详细解释了每一步如何进行,并指出在不同位置哪些操作会影响答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、法一
将所有的询问挂在序列上,按操作进行区间减,小于等于零就取出这个询问,答案就是正在进行的这个操作。

e.g.

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

start:
在这里插入图片描述
operator 1:
在这里插入图片描述
发现有询问小于等于 0,则这些询问的答案就是 opeartor 1

operator 2:
在这里插入图片描述
发现有询问小于等于 0,则这些询问的答案就是 operator 2

但是注意,第二个询问在序列中的编号小于第二个操作在序列中的编号,所以第二个询问的答案为 0.

二、法二

考虑每个位置有哪些操作会影响到,然后二分第一个前缀操作和等于等于 h 的操作,这个操作就是答案。

e.g.

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

position 1:
操作 1 的左端点等于 1,说明这个操作会一直影响,将他加入线段树。
在这里插入图片描述
position 2:
在这里插入图片描述
position 3:
操作 2 的左端点等于 3,说明这个操作会一直影响,将他加入线段树。
在这里插入图片描述
position 4:
操作 1 的右端点等于 3,说明这个操作的影响取消,将他踢出线段树。
在这里插入图片描述
position 5:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值