线段树的历史区间最值和区间抹平操作问题(P6242 线段树3)

本文讲述了作者在解决P6242线段树问题中的心得,重点讲解了如何高效地进行区间抹平操作以及维护区间历史最值,通过使用懒标记优化,同时强调了在代码中正确使用longlong数据类型的重要性。

板子

调试了大半天,终于切掉了,写写感悟与代码思路,加深理解。

 P6242 线段树3icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P6242

大致题意:维护一个数组, 支持一下五种操作:

  • 区间加减
  • 区间抹平(使所有大于 v 的数变成 v) 即进行min操作
  • 区间求和
  • 区间最值
  • 区间历史最值

整道题的重难点在于两个:

1.如何将区间抹平,并将其与区间最值联系起来(高效率操作)

2.如何求取历史区间最值

解决方法在于各种懒标记的运用(吉如一老师的论文,有兴趣可以去看看)

记得开long long!记得开long long!记得开long long!(为了这个long long调了一个多钟)

鉴于是个人整理文,直接在代码中添加注释,有疑惑之处欢迎交流

// Problem: 
//     P6242 【模板】线段树 3(区间最值操作、区间历史最值)
//   
// Contest: Luog
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值