题解:P14751 醒来之后,我回到了汰换系统更新前

· · 题解

题意

给出一些物品的购入价和每天的价格,你可以卖出它们,问最大收益。如果没办法盈利,可以留下来,不计入盈亏。

分析

首先各个物品是独立的。

对于每个物品,我们找到它最贵的一天的价格,如果能盈利就把利润加到答案里。

注意到正好不会爆 int

复杂度 O(mn),瓶颈在于输入。

实现

#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int a[N],b[N][N],c[N];
int n,m,res; 
int main()
{
    cin>>n>>m;
    for(int i = 1; i <= n; i ++) cin>>a[i];
    for(int i = 1; i <= m; i ++)
        for(int j = 1; j <= n; j ++) cin>>b[i][j],c[j] = max(c[j],b[i][j]);
    for(int i = 1; i <= n; i ++) res = max(res,res - a[i] + c[i]);
    cout<<res<<endl;
    return 0;
}