leetcode 盈利计划

Posted 爷灬傲奈我何123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 盈利计划相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
思路:
dp[i][j]代表不超过i 至少j的方案数,然后就很好转移了,第二维可以是负数,但是负数可以当作0处理。

const int N=110;
const int M=10010;
const int mod=1e9+7;
int dp[N][N];//最多用了i个人,利润不超过j的方案数
class Solution {
public:
    
    //dp[n][m]
    int profitableSchemes(int n, int m, vector<int>& group, vector<int>& profit) {
            memset(dp,0,sizeof dp);
            for(int i=0;i<=n;i++)
            dp[i][0]=1;
            for(int i=1;i<=group.size();i++)
            {
                int g=group[i-1];
                int pro=profit[i-1];
                for(int j=n;j>=g;j--)
                    for(int k=m;k>=0;k--)
                    {
                        dp[j][k]=(dp[j][k]+dp[j-g][max(0,k-pro)])%mod;
                    }
            }
            return dp[n][m];
    }
};

以上是关于leetcode 盈利计划的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 879. 盈利计划

LeetCode 879. 盈利计划(dp)

leetcode 盈利计划

LeetCode 879. 盈利计划(动规典范题!)/ 牛客:找零 / 机器人跳跃问题

多属性背包进阶--盈利计划

879. 盈利计划(多维背包问题)