题目
思路
f[i]表示和为i时的数字个数,初始化f[0]=1,和为0时只有一种组合。
#include<iostream>
using namespace std;
const int N=110,M=10010;
int n,m,w,f[M];
int main(){
cin>>n>>m;
f[0]=1;
for(int i=1;i<=n;i++){
cin>>w;
for(int j=m;j>=w;j--){
f[j]+=f[j-w];
}
}
cout<<f[m]<<endl;
return 0;
}