标签:problem 解决 efi 第一个 include creat 接下来 open for
3 3
30 40 50
20 30 50
20 25 30
70
分析:dp[i][j]表示前i个公司分配j台机器最大盈利,MAP[i][j]表示第i个公司分配j台机器的盈利,状态转移方程为:dp[i][j]=max(dp[i-1][k]+MAP[i][j-k],dp[i][j])#include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <map> #define range(i,a,b) for(int i=a;i<=b;++i) #define LL long long #define rerange(i,a,b) for(int i=a;i>=b;--i) #define fill(arr,tmp) memset(arr,tmp,sizeof(arr)) using namespace std; int n,m,MAP[20][20],dp[20][20]; void init(){ cin>>n>>m; range(i,1,n)range(j,1,m)cin>>MAP[i][j]; } void solve(){ range(i,1,n)range(j,1,m){ int mx=0; range(k,0,j)mx=max(mx,dp[i-1][k]+MAP[i][j-k]); dp[i][j]=mx; } cout<<dp[n][m]<<endl; } int main() { init(); solve(); return 0; }
标签:problem 解决 efi 第一个 include creat 接下来 open for
原文地址:https://www.cnblogs.com/Rhythm-/p/9347690.html