#P2329. 栅栏(Fence Rails)
0
栅栏(Fence Rails)
栅栏(Fence Rails)
题目描述
农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材。于是农夫约翰到木材店购买木材。可是木材店老板说他这里只剩下少部分大规格的木板了。不过约翰可以购买这些木板,然后切割成他所需要的规格。而且约翰有一把神奇的锯子,用它来锯木板,不会产生任何损失,也就是说长度为 的木板可以切成长度为 和 的两个木板。
你的任务:给你约翰所需要的木板的规格,还有木材店老板能够给出的木材的规格,求约翰最多能够得到多少他所需要的木板。
输入格式
第一行为整数 表示木材店老板可以提供多少块木材给约翰。紧跟着 行为老板提供的每一块木板的长度。
接下来一行(即第 行)为整数 ,表示约翰需要多少木材。
接下来 行表示他所需要的每一块木板的长度。木材的规格小于 。(对于店老板提供的和约翰需要的每块木板,你只能使用一次)。
输出格式
只有一行,为约翰最多能够得到的符合条件的木板的个数。
样例输入 #1
4
30
40
50
25
10
15
16
17
18
19
20
21
25
24
30
样例输出 #1
7
样例输入 #2
3
20
10
10
9
3
3
3
5
5
7
8
8
9
样例输出 #2
7
数据范围
对于 的数据,,,所有木材规格为不超过 的正整数。
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1900。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 m≤5,n≤15 / 特殊: 一块大木板切全部 / 特殊: 所需规格全部相等 |
| 2 | 15 | 9~11 | Hack: 所有原料均小于最小需求输出0 / Hack: 废料碎片不可拼接致总和虚高 / Hack: 恰好零废料满切 |
| 3 | 30 | 12~20 | 中规模 m≤25,n≤300 / 大规模 m=50,n=1000 二分+废料剪枝压力 |
| 4 | 25 | 21~25 | 随机 m≤50,n≤1000 回归 |
出处:原题链接