推公式——耍杂技的牛

由图可知,只要存在一个逆序,把他们交换一下,最大风险值就会降低,答案更优,因此最优解是按照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;
}
相关推荐
sali-tec10 分钟前
C# 基于OpenCv的视觉工作流-章81-弯脚检测
图像处理·人工智能·opencv·算法·计算机视觉
kkeeper~11 分钟前
0基础C语言积跬步之自定义类型联合和枚举
c语言·开发语言·算法
昵称好难啊12 分钟前
4.OpenClaw源码解析_路由的概念
人工智能·算法
Bingorl17 分钟前
机器学习之KNN算法
人工智能·算法·机器学习
muddjsv19 分钟前
《算法导论》入门学习路径:从零基础到系统掌握
学习·算法
KaMeidebaby36 分钟前
卡梅德生物技术快报|组蛋白乙酰化修饰调控动脉粥样硬化的分子机制及中药表观干预研究
网络·人工智能·网络协议·tcp/ip·算法
Fms_Sa36 分钟前
分治法—最大子段问题
算法·c#
Galerkin码农选手42 分钟前
awq_marlin和gptq_marlin量化算法简要介绍
算法
buhuizhiyuci42 分钟前
【算法篇】动态规划——斐波那契数列模型
算法·动态规划
棱镜研途44 分钟前
学习笔记丨模式识别与机器学习5大核心赛道解析(IC-IPPR 2026)
人工智能·神经网络·算法·机器学习·模式识别·学术会议·智能计算