题目描述
新的学习开始了,小明来到书店采购辅导书。小明有M元,书店有N种不同的书,第i种书卖Ai元,假设小明每种书最多最能买1本,请问小明有多少种不同的买书方案?
输入格式
第一行有两个整数N和M。(1=<N<=100,1<=M<=10000)。
第二行有N个整数ai(1<=ai<=1000)。
输出格式
输出一个整数,代表买书的方案数(请注意:本题的计算结果可能会超过int)
样例输入
4 4
1 1 2 2
样例输出
3
AC代码
#include<bits/stdc++.h>
using namespace std;
long long n,maxn,dp[100010],w;
int main(){
dp[0]=1;
cin>>n>>maxn;
for(int i=1;i<=n;i++){
cin>>w;
for(int j=maxn;j>=w;j--){
dp[j]+=dp[j-w];
}
}
cout<<dp[maxn];
return 0;
}