样板题
(日常打卡)
#include<bits/stdc++.h>
using namespace std;
int a[10001],f[10001];
int n,m;
int main()
{
scanf("%d%d",&n,&m);
f[0]=1;//注意边界(被坑了一次)
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)
{
for(int j=m;j>=a[i];j--)
{
if(f[j-a[i]]>0)//垫脚石
{
f[j]+=f[j-a[i]];
}
}
}
printf("%d",f[m]);
return 0;
}