【题目描述】
给你一个n�种面值的货币系统,求组成面值为m�的货币有多少种方案。
【输入】
第一行为n�和m�。
【输出】
一行,方案数。
【输入样例】
3 10 //3种面值组成面值为10的方案
1 //面值1
2 //面值2
5 //面值5
【输出样例】
10 //有10种方案
#include<bits/stdc++.h>//gezhengxu2024
using namespace std;
long long dp[1000005];
int n,m;
int a[105];
int main()
{
cin>>n>>m;
int i,j;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
dp[0]=1;
for(i=1;i<=n;i++)
{
for(j=a[i];j<=m;j++)
{
dp[j]=dp[j]+dp[j-a[i]];
}
}
cout<<dp[m];
return 0;
}