版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
【题目链接】: http://www.luogu.org/problem/P1083
【题意】:
【数据范围】:
【思路】: 我们可以发现,申请得越多,越难满足所有的要求。
所以,这道题有单调性,即我们可以二分。具体而言,就是二分出一个答案
,判断第
到
条申请是否可以满足。
记
表示第
天需要多少教室,每一条申请可以视为把
都加上
。细细一想,诶,这不就是差分的直接应用吗?所以,在判定的时候,我们可以用差分优化,最后利用前缀和还原原数组,判定每一天是否超过可供应的教室数量,把判定的时间复杂度从
,降为
【代码】:
【补充】: 代码中的
函数是快读函数,考虑到篇幅问题,因为大家都会了,这里不给出代码。
【引申】:
由本题我们可以发现一些东西:
真正的二分部分其实很短,所以二分题目的难度一般都在判定。
差分和前缀和虽然很少单独作为一道题的考点,但它们可以用来优化很多的题目,这就是它们的重要性,所以我们一定要掌握它们。