[HZOI] 山海经 题解

0.题目大意

给出一个序列,每次查询一个区间的最大子段和的端点和值。序列长度 \(n \le 10^{5}\)

1.思路

显然应该使用线段树。题目要求每次求一个区间的最大子段和,那么在线段树节点中应该维护这个节点的最大子段和。然而,只维护最大子段和是无法从子节点合并出父节点的。

考虑一个节点,它的最大子段和可能有以下几个来源:

|_____________________________|               <-节点
   |_________|                                               <-最大子段和
|_______________ |_____________|               <-左右子节点
|_____________________________|               <-节点
                   |_________|                  <-最大子段和
|_______________ |_____________|               <-左右子节点
|_____________________________|               <-节点
        |_________________|                            <-最大子段和
|_______________ |_____________|               <-左右子节点

情况1、2比较容易处理(直接照搬子节点的最大子段和),下面主要考虑情况3(最大子段和跨过中点)。

注意到可以把情况3拆分成这样:

|_____________________________|               <-节点
    |__________| |_____|                            <-最大子段和
|______________| |_____________|               <-左右子节点

即拆分成左子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值