版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011469138/article/details/80153255
状态转移方程:F[j]=F[j]+F[j-G[i]]
#include<bits/stdc++.h>
using namespace std;
int hav[150];
int val[150];
int dp[20009];
int n,v;
int ans=0;
int solve()
{
for(int i=1;i<=n;i++)
for(int j=v;j>=hav[i];j--)
{
dp[j]+=dp[j-hav[i]];
}
return dp[v];
}
int main()
{
scanf("%d%d",&n,&v);
dp[0]=1;
for(int i=1;i<=n;i++)
scanf("%d",&hav[i]);
printf("%d\n",solve());
}