#P1937. 谷仓分配(Barn Allocation)
0
谷仓分配(Barn Allocation)
谷仓分配(Barn Allocation)
题目描述
农夫约翰最近开了一个新的牲口棚。因为其中的一些畜栏风景更好,所以奶牛们向约翰发出了希望分配畜栏的申请。
牲口棚有 个畜栏 ,方便起见,我们把它们编号为 ,畜栏 能容纳 头牛 。第 头牛申请为它分配 到 的编号连续的畜栏来让它散步 。换言之,这头奶牛希望能自由地访问畜栏 ,而为了满足它的要求,你需要在 范围内的畜栏中为它预留至少一单位容量。
给出 个畜栏分配请求 ,回答最多能满足多少头牛的要求而不增加额外的畜栏。
输入格式
第一行包括两个以空格隔开的正整数:。
第二行到第 行:第 行每行包括一个整数:。
第 到第 行:第 行每行包括两个整数 。
输出格式
仅一行:能满足的最大要求数。
样例输入 #1
5 4
1
3
2
1
3
1 3
2 5
2 3
4 5
样例输出 #1
3
数据范围
考虑以下例子:
畜栏号: 1 2 3 4 5
+---+---+---+---+---+
容纳空间: | 1 | 3 | 2 | 1 | 3 |
+---+---+---+---+---+
Cow 1 XXXXXXXXXXX (1, 3)
Cow 2 XXXXXXXXXXXXXXX (2, 5)
Cow 3 XXXXXXX (2, 3)
Cow 4 XXXXXXX (4, 5)
约翰显然不能满足所有的需求,因为畜栏 请求太多了。
经过试验,我们发现,我们能满足牛 的需求,所以这组数据答案为 。
Source: USACO 2010 March Gold
对于 的数据,,,。
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1750。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 20 | 2~7 | 小规模 N,M≤200 / 边界 N=1 / 单点请求 A_i=B_i |
| 2 | 15 | 8~11 | Hack: 长区间嵌套短区间卡错误左端点贪心 / Hack: 容量全为1退化最大不相交区间 / Hack: 容量充足全选 |
| 3 | 30 | 12~20 | 满规模 N=10^5, M=10^5 线段树区间减与最小值贪心压力 |
| 4 | 25 | 21~25 | 随机容量与区间跨度回归测试 |
出处:原题链接