推公式——耍杂技的牛

由图可知,只要存在一个逆序,把他们交换一下,最大风险值就会降低,答案更优,因此最优解是按照wi+si从小到大升序排列,顺次计算每头牛的危险系数,最大值即是答案。

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

typedef pair<int, int> PII;

const int N = 50010;

int n;
PII cow[N];

int main()
{
    cin>>n;
    for (int i = 0; i < n; i ++ )
    {
        int s, w;
        cin>>w>>s;
        cow[i] = {w + s, w};
        //pair是按照first为第一关键字排序,以second为第二关键字排序
    }

    sort(cow, cow + n);//升序

    int res = -2e9, sum = 0;//res代表风险值,sum当前这头牛上面所有牛的重量
    for (int i = 0; i < n; i ++ )
    {
        int s = cow[i].first - cow[i].second, w = cow[i].second;
        res = max(res, sum - s);
        sum += w;
    }

    cout<<res;

    return 0;
}
相关推荐
ShallWeL5 分钟前
AUC、F1、召回率怎么选
人工智能·算法·机器学习
水龙吟啸19 分钟前
华为2026.6.3机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·华为
学究天人24 分钟前
数学公理体系大全:第十四章 向量空间与模:线性代数的公理化与推广
线性代数·算法·矩阵·动态规划·抽象代数
ysu_03149 小时前
05 | 持久化撤销提示非核心功能
算法·游戏程序
浮沉98711 小时前
二分查找算法概述&通用模板
算法
Keven_1112 小时前
算法札记:SPFA判负环算法的证明
算法
什巳12 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
Jerry12 小时前
LeetCode 347. 前 K 个高频元素
算法