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 盈利计划的主要内容,如果未能解决你的问题,请参考以下文章