2022.3.15
阿新 • • 發佈:2022-03-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; }