P1164 小A点菜

发布时间 2023-08-22 15:55:52作者: 失控D大白兔

餐馆菜品种类不少,有N种,第i中卖c[i]元,且每种只有一样
小A要把V元全部花光,问有多少种点菜方式

1. 动态规划

dp[j] = dp[j] + dp[j-c[i]]

int maxval(int V,vector<int>&c){
    int n = c.size();
    vector<int> dp(V+1);
    dp[0] = 1;
    for(int i=0;i<n;i++)
        for(int j=V;j>=c[i];j--)
            dp[j] += dp[j-c[i]];
    return dp[V];
}