题目 3144

「Coins」 硬币

查看题解 ↗GitHub ↗如何评测
题号
3144
时间限制
1000 ms
内存限制
128 MB
标签
动态规划背包

给定N种硬币,其中第 i 种硬币的面值为AiA_i,共有CiC_i个。

从中选出若干个硬币,把面值相加,若结果为S,则称“面值S能被拼成”。

求1~M之间能被拼成的面值有多少个。

输入格式

输入包含多组测试用例。

每组测试用例第一行包含两个整数N和M。

第二行包含2N个整数,分别表示A1,A2,…,ANA_1,A_2,\dots,A_N和C1,C2,…,CNC_1,C_2,\dots,C_N。

当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。

输出格式

每组用例输出一个结果,每个结果占一行。

数据范围

1≤N≤1001 \le N \le 100,
1≤M≤1051 \le M \le 10^5,
1≤Ai≤1051 \le A_i \le 10^5,
1≤Ci≤10001 \le C_i \le 1000

输入用例:

文本
3 10
1 2 4 2 1 1
2 5
1 4 2 1
0 0

输出用例:

文本
8
4

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解

数据下载

题目 3144 的公开数据

正在读取文件列表…

常用命令

题目 3144 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。