【 bzoj 4355 】 Play with sequence - 线段树乱搞

这篇博客讲述了如何利用线段树解决一类特定的序列操作问题,包括将操作2归约为最小值增加和区间增加操作,以及操作1和操作3的转化方法。通过维护线段树中每个节点的最小值和次小值,实现了O((n+m)logn)的时间复杂度解决方案。在实际编码中需要注意避免某些陷阱,如最小值增量标记的时机和下传标记的判断。
摘要由CSDN通过智能技术生成

  先讲个故事。。。
  据说某一天,claris扔了一道题到某群里面然后引起了不大的讨论~然后好学向上的whx同学发现了这题。。。聪明的whx想了很久。。。然后!whx发现看不懂claris给的暴力的证明。。。于是去找了吉司机。。。吉司机若有所思。。。再后来跟whx说:这是对的。。。然而whx同学并没有写。。。最后就弃坑啦。。。
  第二年,whx来到WC2016的会场上,发现:诶,吉司机的线段树怎么这么。。。眼熟?
  自行脑补
  咳咳,回到正题。
  去了WC2016的都知道这类取max的题的做法。
  容易发现线段树直接做不太好做,尝试深入发掘一下线段树的性质。
  假设我们需要对 i[l,r] 进行 Aimax{ Ai,x} 的操作,考虑用线段树瞎搞。对每个节点 u 维护最小值 mn[u] 和次小值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值