先讲个故事。。。
据说某一天,claris扔了一道题到某群里面然后引起了不大的讨论~然后好学向上的whx同学发现了这题。。。聪明的whx想了很久。。。然后!whx发现看不懂claris给的暴力的证明。。。于是去找了吉司机。。。吉司机若有所思。。。再后来跟whx说:这是对的。。。然而whx同学并没有写。。。最后就弃坑啦。。。
第二年,whx来到WC2016的会场上,发现:诶,吉司机的线段树怎么这么。。。眼熟?
自行脑补
咳咳,回到正题。
去了WC2016的都知道这类取max的题的做法。
容易发现线段树直接做不太好做,尝试深入发掘一下线段树的性质。
假设我们需要对 i∈[l,r] 进行 Ai→max{
Ai,x} 的操作,考虑用线段树瞎搞。对每个节点 u 维护最小值
【 bzoj 4355 】 Play with sequence - 线段树乱搞
最新推荐文章于 2020-01-23 13:56:18 发布
这篇博客讲述了如何利用线段树解决一类特定的序列操作问题,包括将操作2归约为最小值增加和区间增加操作,以及操作1和操作3的转化方法。通过维护线段树中每个节点的最小值和次小值,实现了O((n+m)logn)的时间复杂度解决方案。在实际编码中需要注意避免某些陷阱,如最小值增量标记的时机和下传标记的判断。
摘要由CSDN通过智能技术生成