’‘’
//这个就是简单地01背包问题
include[HTML_REMOVED]
using namespace std;
/*
状态表示和状态计算 、
状态表示 f[i,j]表示选择当前i个数 和为 j的总情况 状态属性 求总数
状态计算 f[i,j]=f[i-1,j]+f[i-1,j-v[i]]//分为两种情况 表示选择当前这个数还是不选择当前这个数
f[0]=1//当j=0的时候只有一种情况,就是不选
*/
const int N=100010;
int a[N],f[N];
int n,m;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i){
scanf(“%d”,&a[i]);
}
f[0]=1;
for(int i=1;i<=n;i){
for(int j=m;j>=a[i];j–){
f[j]=f[j]+f[j-a[i]];
}
}
cout<<f[m];
}
’‘’