01背包方案计数

版权声明:本文为博主原创文章,未经博主允许不得转载。 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());
 } 

猜你喜欢

转载自blog.csdn.net/u011469138/article/details/80153255