#P2096. E10*【背包:二进制压缩】硬币1[POJ1742]

E10*【背包:二进制压缩】硬币1[POJ1742]

0x50 动态规划(0x52 背包)例题4:硬币(对比3042,二进制压缩不能用于方案计数)

【题意】

nn 种面值的硬币,每种硬币的面值分别为 bib_i,数量为 cic_i

问:面值 1m1 \dots m,有多少种面值能被以上硬币拼凑成?

【输入格式】

多组数据。

每组数据的第一行两个整数 n,mn , m,当nnmm都为0是输入结束。

下来 nn 个整数 bib_i,表示这 nn 种硬币的面值。

下来 nn 个整数 cic_i,表示这 nn 种硬币的数量。

1n1001 \le n \le 1001bi1051 \le b_i \le 10^51ci1031 \le c_i \le 10^31m1051 \le m \le 10^5

【输出格式】

每组用例输出一行一个整数,表示答案。

【输入用例】

3 10
1 2 4 2 1 1
2 5
1 4 2 1
0 0

【输出用例】

8
4