关注
比如,你来到8,已知8的右边最小值是5,如下
…8…5…
你就知道,5这个数是一定要增长到8才行的。5 -> 8,增长3次。
我们用线段树,5…7范围上,都设置成1!注意!不是+1,是线段树里update操作!不是add操作!
表示:
所有的5肯定都要变的(线段树里5位置+1,表示关于5要操作一次)
所有的6肯定都要变的(线段树里6位置+1,表示关于6要操作一次)
所有的7肯定都要变的(线段树里7位置+1,表示关于7要操作一次)
然后,假设你接下来,来到7,7的右边最小值还是5,如下:
…8 7…5…
我们用线段树,5…6范围上,都设置成1!你会发现,其实没啥变化,因为之前5…7范围都已经设置成1了。
这正好是我们要的效果!
然后,假设你接下来,来到9,9的右边最小值还是5,如下:
…8 7 9…5…
我们用线段树,5…8范围上,都设置成1!你会发现,其实只在8位置上变化了,因为之前5…7范围上,都已经设置成1了。
最后你看看线段树里,总体累加和是多少就可以了。
再举个例子:
13 6 30 19
你来到13,发现右边最小值是6,于是线段树6…12范围,都设置成1
你来到6,发现右边最小值>=6,于是线段树什么也不做。
你来到30,发现右边最小值是19,于是线段树19…29范围,都设置成1
你来到19,线段树什么也不做。
最终,线段树里,只有6…12、19…29范围上有1,所以线段树整体累加和是18。就是我们要的答案。
因为值在10^9范围,所以用开点线段树,或者,用线段树离散化处理。都可以。
最小值这个信息可以用预处理数组。
时间复杂度O(N * log N)
查看原帖
1 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
12-17 17:15
华东师范大学 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
140644次浏览 2420人参与
# 秋招落幕,你是He or Be #
2079次浏览 56人参与
# 应届生进小公司有什么影响吗 #
108682次浏览 1110人参与
# 你面试体验感最差/最好的公司 #
1653次浏览 45人参与
# 工作中听到最受打击的一句话 #
1771次浏览 51人参与
# 重来一次,你会对开始求职的自己说 #
2290次浏览 58人参与
# 大厂VS公务员你怎么选 #
70265次浏览 651人参与
# 一人说一个提前实习的好处 #
2491次浏览 43人参与
# 实习没事做是福还是祸? #
7090次浏览 118人参与
# 团建是“福利”还是是 “渡劫” #
3440次浏览 87人参与
# 从顶到拉给所有面过的公司评分 #
144678次浏览 518人参与
# 你小心翼翼的闯过多大的祸? #
6130次浏览 101人参与
# 今年你最想重开的一场面试是? #
1120次浏览 22人参与
# 联影求职进展汇总 #
123713次浏览 781人参与
# OPPO求职进展汇总 #
755730次浏览 5390人参与
# 互联网公司爆料 #
158445次浏览 724人参与
# 公司情报交流地 #
127356次浏览 1233人参与
# 如何排解工作中的焦虑 #
242814次浏览 2225人参与
# 今年形式下双非本找得到工作吗 #
266236次浏览 1541人参与
# 实习简历求拷打 #
27729次浏览 276人参与


