推公式——耍杂技的牛

由图可知,只要存在一个逆序,把他们交换一下,最大风险值就会降低,答案更优,因此最优解是按照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;
}
相关推荐
竹子_231 小时前
二分法详解:用生活例子 + 图示
python·算法·生活
用户4822137167752 小时前
Python——正则表达式(字符匹配-贪婪模式)
算法
二向箔reverse2 小时前
经典算法题解析:从思路到实现,掌握核心编程思维
算法
天一生水water2 小时前
聚类的肘部法则原理
算法·支持向量机·聚类
蒟蒻小袁3 小时前
力扣面试150题--颠倒二进制位
java·算法·leetcode
boyedu3 小时前
比特币区块链共识算法:数字世界的信任密码
算法·区块链·共识算法·数字货币·加密货币·虚拟货币
pk_xz1234563 小时前
社区资源媒体管理系统设计与实现
网络·python·深度学习·算法·数据挖掘·媒体
3 小时前
LeetCode Hot 100 括号生成
算法·leetcode·职场和发展
逝雪Yuki3 小时前
Leetcode——42. 接雨水
c++·算法·leetcode·双指针·接雨水
香蕉可乐荷包蛋4 小时前
排序算法 (Sorting Algorithms)-JS示例
javascript·算法·排序算法