### 文章目录
- [@[toc]](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [试题编号](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [试题名称](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [时间限制](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [内存限制](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [题目描述](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [输入格式](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [输出格式](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例1输入](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例1输出](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例1解释](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例2输入](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例2输出](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例2解释](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例3输入](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例3输出](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [样例3解释](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [子任务](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [提示](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现) - [`Python`实现](#文章目录 @[toc] 试题编号 试题名称 时间限制 内存限制 题目描述 输入格式 输出格式 样例1输入 样例1输出 样例1解释 样例2输入 样例2输出 样例2解释 样例3输入 样例3输出 样例3解释 子任务 提示
Python
实现)
试题编号
202209-2
试题名称
何以包邮?
时间限制
1.0s
内存限制
512.0MB
题目描述
- 新学期伊始,适逢顿顿书城有购书满 x x x元包邮的活动,小 P P P同学欣然前往准备买些参考书
- 一番浏览后,小 P P P初步筛选出 n n n本书加入购物车中,其中第 i i i本 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n的价格为 a i a_{i} ai元
- 考虑到预算有限,在最终付款前小 P P P决定再从购物车中删去几本书(也可以不删),使得剩余图书的价格总和 m m m在满足包邮条件 ( m ≥ x ) (m \geq x) (m≥x)的前提下最小
- 试帮助小 P P P计算,最终选购哪些书可以在凑够 x x x元包邮的前提下花费最小
输入格式
- 从标准输入读入数据
- 输入的第一行包含空格分隔的两个正整数 n n n和 x x x,分别表示购物车中图书数量和包邮条件
- 接下来输入 n n n行,其中第 i i i行 ( 1 ≤ i ≤ n ) (1 \leq i \leq n) (1≤i≤n)仅包含一个正整数 a i a_{i} ai,表示购物车中第 i i i本书的价格
- 输入数据保证 n n n本书的价格总和不小于 x x x
输出格式
- 输出到标准输出
- 仅输出一个正整数,表示在满足包邮条件下的最小花费
样例1输入
shell
4 100
20
90
60
60
样例1输出
shell
110
样例1解释
- 购买前两本书 ( 20 + 90 ) (20 + 90) (20+90)即可包邮且花费最小
样例2输入
shell
3 30
15
40
30
样例2输出
shell
30
样例2解释
- 仅购买第三本书恰好可以满足包邮条件
样例3输入
shell
2 90
50
50
样例3输出
shell
100
样例3解释
- 必须全部购买才能包邮
子任务
- 70 % 70\% 70%的测试数据满足: n ≤ 15 n \leq 15 n≤15
- 全部的测试数据满足: n ≤ 30 n \leq 30 n≤30,每本书的价格 a i ≤ 1 0 4 a_{i} \leq 10^{4} ai≤104且 x ≤ a 1 + a 2 + ⋯ + a n x \leq a_{1} + a_{2} + \cdots + a_{n} x≤a1+a2+⋯+an
提示
- 对于 70 % 70\% 70%的测试数据,直接枚举所有可能的情况即可
Python
实现
python
n, x = map(int, input().split())
a = []
for _ in range(n):
a.append(int(input()))
dp = [[0] * (sum(a) + 1) for _ in range(n + 1)]
res = sum(a)
for i in range(1, n + 1):
for j in range(1, sum(a) + 1):
if a[i - 1] > j:
dp[i][j] = dp[i - 1][j]
else:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - a[i - 1]] + a[i - 1])
if x <= dp[i][j] < res:
res = dp[i][j]
print(res)