1. 程式人生 > 其它 >2022.3.15

2022.3.15

藍書

AcWing 125. 耍雜技的牛

思路:和國王遊戲很像,貪心的時候需要考慮兩個屬性,牛的重量和力量。以牛的重量和力量的和從大到小排序可以使得最大的風險值最小,利用啥臨項微擾啥的可以證明,讓序列變得有序不會讓結果變壞,但有逆序對不會讓結果變好。然後從小到大更一下牛的最大的風險值。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const int N=5e4+10,INF=1e8;
pll cow[N];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        ll w,s;
        cin >> w >> s;
        cow[i]={w+s,s};
    }
    sort(cow+1,cow+1+n);
    ll res=-1e9,sum=0;
    for(int i=1;i<=n;i++)
    {
        res=max(res,sum-cow[i].second);
        sum+=cow[i].first - cow[i].second;
    }
    cout << res;
    return 0;
}