
样例1输入:
6 7
8 6 7 4 5 9
2 4 5
4 1 4
6 2 7
1 5 2
3 4 8
4 3 1
3 1 3
样例1输出:
7
9
8
7
8
6
5
样例1每次提供完新寿司后,顾客拥有的寿司价格依次为:
1.8 5 6 4 5 9
2.8 5 6 4 4 5
3.7 5 6 4 4 5
4.2 5 6 4 4 5
5.2 5 6 4 4 5
6.2 5 5 1 4 4
7.2 5 3 1 4 4
样例2输入:
4 2
5 2 4 7
1 4 3
1 4 1
样例2输出:
7
5
样例3输入:
10 10
19 5 8 17 14 3 9 10 7 6
1 8 4
7 3 2
5 9 10
4 8 3
10 3 6
8 7 4
6 6 3
2 9 12
6 3 7
9 6 3
样例3输出:
19
10
14
17
8
10
3
12
7
9
n<=40w,q<=2.5w,时限4s
很有意思的一道题。区间问题除了线段树等数据结构之外,一般用分块和莫队解决,而这道题有在线操作的意味,因此后者pass~
考虑分块,显然,每一次进入区间后,寿司的数量是不会变的,而且,寿司滚出这个区间之后显然是这段区间+新寿司中的最大值,因此我们可以用大根堆来维护每一个块的最大值,那么每一个

本文通过解决回转寿司问题,探讨了分块和堆在区间问题中的应用。采用大根堆维护每个块的最大值,小根堆处理散块,结合分块策略,实现在线操作的高效解决方案,时间复杂度为q√nlogn。需要注意STL可能导致超时,需要进行相应优化。
最低0.47元/天 解锁文章
755

被折叠的 条评论
为什么被折叠?



