#dDDLDPybttg050507. 1603:绿色通道
1603:绿色通道
好的,我将这道题整理为清晰的题面格式,并补充样例解释、数据范围与时空限制:
题目描述
高二数学《绿色通道》总共有 道题目要抄,编号 ,抄第 题要花 分钟。小 Y 决定只用不超过 分钟抄这个,因此必然有空着的题。每道题要么不写,要么抄完,不能写一半。下标连续的一些空题称为一个空题段,它的长度就是所包含的题目数。这样应付自然会引起马老师的愤怒,最长的空题段越长,马老师越生气。
现在,小 Y 想知道他在这 分钟内写哪些题,才能够尽量减轻马老师的怒火。由于小 Y 很聪明,你只要告诉他最长的空题段至少有多长就可以了,不需输出方案。
输入格式
第一行为两个整数 ;
第二行为 个整数 ,表示抄每道题所需的时间。
输出格式
输出一个整数,表示最长的空题段至少有多长。
样例
样例输入
17 11
6 4 5 2 5 3 4 5 2 3 4 5 2 3 6 3 5
样例输出
3
样例说明
,题目时间如上表。
在不超过 分钟的情况下,小 Y 可以选择抄部分题目,使得最长连续空题段长度尽量小。
输出为 ,表示存在一种选择,使得最长空题段长度不超过 ,且总时间不超过 分钟。
表格中给出了一种方案(“是否空题”一行中,√ 表示空题,空白表示抄题)。
最长连续空题段长度为 (例如第 到 题都空,或第 到 题都空,等等)。
数据范围
- 对于 的数据,;
- 对于所有数据,$0 < n \le 5\times 10^4, 0 < a_i \le 3000, 0 < t \le 10^8$。
时空限制
- 时间:
- 内存:
提示
此题为 二分答案 + 单调队列优化 DP 问题。
问题转化:
设最长空题段长度不超过 ,问是否存在一种选择方案,使得总时间不超过 。
如果我们能快速判断对于给定的 是否可行,那么就可以通过二分 来找到最小的可行 。
判断方法(给定 ):
此时要求任意连续 道题中至少选一道(因为如果连续 道题都不选,则空题段长度为 ,不满足要求)。
因此问题变为:在“任意连续 题至少选一道”的限制下,选择一些题目,使总时间最小。
设 表示前 题,且第 题必须选的最小总时间。
转移方程:
其中 的范围是因为第 题选,上一道选的题必须在 之间,否则中间空题段会超过 。
初始条件:
可以设虚拟的第 题,。
最终的最小总时间是 (因为最后一段空题段也不能超过 ,所以最后一道选的题必须在 之间)。
这个最小总时间如果 ,则 可行。
优化:
可以用 单调队列 维护滑动窗口最小值。
二分答案:
- 下界 (可以一题不空?但至少有一题空,所以可能从 开始);
- 上界 (全空);
- 二分 ,判断是否可行,可行则 ,否则 。
复杂度:。
注意:当 时,可以一题不选,总时间为 ,肯定可行。
当 时,必须每道题都选,总时间为 ,若 则可行,否则不可行。