推公式——耍杂技的牛

由图可知,只要存在一个逆序,把他们交换一下,最大风险值就会降低,答案更优,因此最优解是按照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;
}
相关推荐
禹凕10 分钟前
快速幂算法详解与实战
python·算法
xxwl58514 分钟前
高斯消元法异或版
人工智能·算法·机器学习
sylviiiiiia19 分钟前
leetcode hot 100
python·算法·leetcode
OPEN-F1 小时前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
luj_17681 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.1 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法
shehuiyuelaiyuehao2 小时前
算法37,位运算,两个整数之和(不用+符号)
算法
猎头南楼2 小时前
MFC 质量流量控制器中的控制算法设计与落地思考
人工智能·算法
来一碗刘肉面2 小时前
平衡二叉树的删除
数据结构·算法
wabs6662 小时前
关于二叉树【力扣199.二叉树的右视图的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历