#T2062. 硬币组合 I(Coin Combinations I)

硬币组合 I(Coin Combinations I)

链接: https://cses.fi/problemset/task/1635

板块: Dynamic Programming

时限: 1.00 s | 内存: 512 MB

题目描述

考虑一个由 nn 种硬币组成的货币系统。每种硬币都有一个正整数面值。你的任务是计算用这些可用硬币凑出金额 xx 的不同方法数。

例如,如果硬币为 {2,3,5}\{2,3,5\},目标金额为 99,共有 88 种方法:

  • 2+2+52+2+5
  • 2+5+22+5+2
  • 5+2+25+2+2
  • 3+3+33+3+3
  • 2+2+2+32+2+2+3
  • 2+2+3+22+2+3+2
  • 2+3+2+22+3+2+2
  • 3+2+2+23+2+2+2

输入

第一行输入包含两个整数 nnxx:硬币的种类数和目标金额。

第二行包含 nn 个互不相同的整数 c1,c2,,cnc_1,c_2,\dots,c_n:每种硬币的面值。

输出

输出一个整数:方法数对 109+710^9+7 取模的结果。

数据范围

1n1001 \le n \le 100 1x1061 \le x \le 10^6 1ci1061 \le c_i \le 10^6

样例输入

3 9
2 3 5

样例输出

8