黑白博弈 | 线段树(维护区间最小值&&最大值)

黑白博弈

  • 题目
  • 分析
  • 代码

题目

在这里插入图片描述
题目链接:黑白博弈

分析

首先我们通过读题:单点修改查询很容易发现这道题可以用线段树解决,既然决定了用线段树解决,那么我们需要确定以下几个要素:

1:使用线段树维护什么?

2:如何通过线段树维护的数据获得我们需要的答案?

Question1:

我们需要用利用线段树维护什么?

通过题目要求我们得知在进行查询操作时需要查询的数据是当前白块区间所有连续的白块数量,也就是说只要知道了该白块区间两端的黑块下标,我们就可以通过这两个黑块下标计算得出该区间的白块个数。

那么——如何通过查询得到目标白块所处区间两端的黑块下标呢?

这就是我们线段树要维护的数据了:该区间中黑块下标的最大值与最小值。(还有不懂的小伙伴请看下面的图示分析)

假设有长度为5的白块(初始状态全为白块)
我们将其(白块)最大值赋值为负无穷大(下面以INFF代替),最小值则赋值为正无穷大(下面以INFZ代替)前者为最大值,后者为最小值

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值