题目链接:Here

思路:这道题很容易看出来是考察 优先队列(priority_queue)sort .

对于容忍人数越高的人来说,团队人数低也更能做到;

for i = 0 to n - 1:
ans = max(ans, vs[i].v + 满足vs[j].s >= vs[i].s 且 i != j 的j中选<= vs[i].s - 1个的vs[j].v的最大和)

所以按 s 降序排序,维护堆即可

  • \(\mathcal{O}(nlogn)\)
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct node {
ll v, s;
};
bool cmp(node a, node b) { return a.s > b.s; }
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
vector<node> vs(n);
for (int i = 0; i < n; ++i) {
cin >> vs[i].v >> vs[i].s;
}
// 按 s 大小降序排序
sort(vs.begin(), vs.end(), cmp);
ll ans = 0, tmp = 0;
// 优先队列 q 保存士兵希望团人数的数组,并以战力小为堆顶
priority_queue<int, vector<int>, greater<int>> q;
for (int i = 0; i < n; ++i) {
while (q.size() >= vs[i].s) {
tmp -= q.top();
q.pop();
}
ans = max(ans, tmp + vs[i].v);
q.push(vs[i].v), tmp += vs[i].v;
}
cout << ans << "\n";
return 0;
}

【每日一题】1. tokitsukaze and Soldier (优先队列 + 排序)的更多相关文章

  1. <每日一题> Day4:CodeForces-1042A.Benches(二分 + 排序)

    题目链接 参考代码: /* 排序 + 每次取小 #include <iostream> #include <algorithm> using namespace std; co ...

  2. 每日一题20201112(922. 按奇偶排序数组 II)

    题目链接: 922. 按奇偶排序数组 II 思路 很简单,搞懂问题的核心就行,假设现在有奇数在偶数位上,偶数在奇数位上. 那么我们要做的就是,找到分别在对方位置上的数字,然后交换他们就行. class ...

  3. 【python】Leetcode每日一题-丑数2

    [python]Leetcode每日一题-丑数2 [题目描述] 给你一个整数 n ,请你找出并返回第 n 个 丑数 . 丑数 就是只包含质因数 2.3 和/或 5 的正整数. 示例1: 输入:n = ...

  4. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  7. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  8. 【Java每日一题】20161230

    // 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...

  9. 【Java每日一题】20161229

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...

  10. 【Java每日一题】20161228

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...

随机推荐

  1. Android学习day04【Button】

    出现的一些小状况: 小状况 报错,代码显示运行成功 但是无法在模拟机上显示 原因是没有在包含应有id 其二是关于设置背景颜色中 关于background与backgroundTint的区别 //这是b ...

  2. 🔥🔥Java开发者的Python快速实战指南:实用工具之PDF转DOCX文档(可视化界面)

    首先,大家对Python语法的了解已经基本完成,现在我们需要开始进行各种练习.我为大家准备了一些练习题目,比如之前的向量数据库等,这些题目可以参考第三方的SDK来进行操作,文档也是比较完善的.这个过程 ...

  3. SpringBoot项目中常见组件的配置属性

    本文本的属性摘录自官方Properties配置清单,并附加了国内开发常用的框架配置属性.以国内WEB开发中,所涉及的常见组件为顺序组织配置清单 1. 配置属性清单 1.1 日志配置 序号 属性名 类型 ...

  4. Mybatis-Flex核心功能之@Id

    1.是什么? 在 Entity 类中,MyBatis-Flex 是使用 @Id 注解来标识主键的 2.怎么玩? public @interface Id { /** * ID 生成策略,默认为 non ...

  5. 如何利用烛龙和谷歌插件优化CLS(累积布局偏移)

    简介 CLS 衡量的是页面的整个生命周期内发生的每次意外布局偏移的最大突发性_布局偏移分数_.布局变化的发生是因为浏览器倾向于异步加载页面元素.更重要的是,您的页面上可能存在一些初始尺寸未知的媒体元素 ...

  6. SpringBoot对象拷贝

    目录 概述 定义实体类 Car size carInfo 造测试数据 Spring BeanUtils Apache BeanUtils Cglib BeanCopier MapStruct 性能测试 ...

  7. 强!推荐一款自动化神器Autolt:不再重复工作

    随着互联网不断发展,它给我们带来便利的同时,也带来了枯燥.重复.机械的重复工作.今天,我要和大家分享一款老牌实用的自动化工具:AutoIt,它能够让你告别繁琐的重复性工作,提高工作效率. 这里透露一下 ...

  8. Python——第二章:运算符

    1. 算数运算    + - * / // % "//"除 "%"余 a = 20 b = 3 c = a // b d = a % b # 20 / 3 = ...

  9. MySQL部署后配置

    授权root用户登录 #仅本地登录,修改密码用 alter user root@'localhost' identified with mysql_native_password by'******* ...

  10. kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境

    原创/朱季谦 最近在阅读Kafka的源码,想可以在阅读过程当中,在代码写一些注释,便决定将源码部署到本地运行. 日常开发过程中,用得比较多一个版本是Kafka2.7版本,故而在MacBook Pro笔 ...