备战蓝桥杯---数据结构与STL应用(入门4)

本专题主要是关于利用优先队列解决贪心选择上的“反悔”问题

话不多说,直接看题:

下面为分析:

很显然,我们在整体上以s[i]为基准,先把士兵按s[i]排好。然后,我们先求s[i]大的开始,即规定选人数不超过s[i]的士兵,下面为图解:

下面为AC代码:

#include<bits/stdc++.h>
using namespace std;
struct node{long long v,s;
}a[1000100];
long long n;
bool cmp(node a,node b){return a.s>b.s;
}
signed main(){cin>>n;for(int i=1;i<=n;i++){scanf("%lld%lld",&a[i].v,&a[i].s);}sort(a+1,a+1+n,cmp);priority_queue<long long,vector<long long>,greater<long long> > q;long long cap=a[1].s,sum=a[1].v,max1=-1;q.push(a[1].v);for(int i=2;i<=n;i++){if(a[i].s==cap){q.push(a[i].v);sum+=a[i].v;if(q.size()>cap){sum-=q.top();q.pop();}}  else{cap=a[i].s;q.push(a[i].v);sum+=a[i].v;while(q.size()>cap){sum-=q.top();q.pop();}}max1=max(max1,sum);}cout<<max1;
}

再来一道类似的:

下面为分析:

类似的,我们指定一个基准,我们按deadline升序排好,从小的开始枚举。

如果前面的时间加当前所需没超当前建筑的deadline,我们就添加。

否则,我们用它与前面所需时间max的比,如果比他小就替换。

下面为AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
struct node{int t1,t2;
}a[150010];
bool cmp(node a,node b){return a.t2<b.t2;}
signed main(){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d%d",&a[i].t1,&a[i].t2);sort(a+1,a+n+1,cmp);priority_queue<int> q;int dead=-1,cnt=0,sum=0;for(int i=1;i<=n;i++){q.push(a[i].t1);cnt++;sum+=a[i].t1;if(a[i].t2!=dead) dead=a[i].t2;if(sum>dead){sum-=q.top();cnt--;q.pop();}  }cout<<cnt;
}

让我们总结一下,本专题围绕利用优先队列解决贪心选择上的“反悔”(或优化)问题(常用于固定枚举一个基准值)

最后,举个形象的例子:我们的成长就是从一开始的幼稚不断地经历岁月的打磨,见识的增长,不断优化,最终走向成熟。

希望可以和大家一起继续前行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/444748.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客——字符串(尺取法与滑动窗口)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的&#xff0c;当且仅当T中包含了所有的小写字母。小N希望知道所有的合法的S的子串中&#xff0c…

微信小程序(二十三)获取页面栈及当前页面实例

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.页面栈的定义 2.获取当前页面实例 页面栈 当我们从A页面跳到B页面再跳到C页面时&#xff0c;页面栈则是由三个页面的实例组成的数组&#xff0c;A在下标为0的数组中&#xff0c;C在下标为2的数组中 当然&#…

基于二值化图像转GCode的螺旋扫描实现

基于二值化图像转GCode的螺旋扫描实现 什么是双向扫描螺旋扫描代码示例 基于二值化图像转GCode的螺旋扫描实现 什么是螺旋扫描 螺旋扫描&#xff08;Spiral Scanning&#xff09;是激光雕刻中一种特殊的扫描方式&#xff0c;其特点是激光头按照螺旋形状逐渐向外移动&#xf…

再讲 Session 和 Token,彻底弄明白

前言 在构建用户身份管理系统时&#xff0c;选择会话&#xff08;Session&#xff09;还是令牌&#xff08;Token&#xff09;是一个关键决策&#xff0c;取决于系统的需求和特定的使用场景。本文将深入探讨何时适合使用会话&#xff0c;何时适合使用令牌&#xff0c;以帮助开发…

国图公考:考公和考编一样吗?

公务员&#xff1a;是指在各级机关中&#xff0c;符合规定&#xff0c;行使职权&#xff0c;执行公务的人员 事业单位&#xff1a;事业单位是指由国家或社会组织举办&#xff0c;从事教育、科学、文化、卫生、体育等社会公益事业的单位。 公务员和事业编都是有编制的&#xf…

制造业工厂实施MES系统带来的价值是什么?

MES系统的应用能给制造业带来哪些价值&#xff1f;制造企业想要获得更大的利润&#xff0c;就要从生产开始着手。生产制造是工厂的核心,是公司最大的成本来源。企业只有通过信息化的管理模式&#xff0c;从而达到节约成本&#xff0c;提高质量&#xff0c;才能为客户提供更满意…

8.DNS域名解析服务器

目录 1. 概述 1.1. 产生原因 1.2. 作用&#xff1a; 1.3. 连接方式 1.4. 因特网的域名结构 1.4.1. 拓扑&#xff1a; 1.4.2. 分类 1.4.3. 域名服务器类型划分 2. DNS域名解析过程 2.1. 分类&#xff1a; 2.2. 解析图&#xff1a; 2.2.1. 图&#xff1a; 2.2.2. 过…

hot100:26环形链表II

题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 算法思想&#xff1a; 在环形链表hot100&#xff1a;25环形链表-CSDN博客这篇博客中&#xff0c;我们解决了如何判断一个链表有环&#xff0c;即快慢指针相遇的地方就证明链表…

【机器学习】监督学习算法之:线性回归

线性回归 1、引言2、线性回归2.1 定义2.2 基本原理2.3 公式2.4 实现2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;最近机器学习的文章写的不少啊。 小鱼&#xff1a;你还挺细心的哦。 小屌丝&#xff1a;那必须的&#xff0c;我要学习&#xff0c;我要成长…

通过与chatGPT交流实现零样本事件抽取

1、写作动机&#xff1a; 近来的大规模语言模型&#xff08;例如Chat GPT&#xff09;在零样本设置下取得了很好的表现&#xff0c;这启发作者探索基于提示的方法来解决零样本IE任务。 2、主要贡献&#xff1a; 提出了基于chatgpt的多阶段的信息抽取方法&#xff1a;在第一阶…

吉大计网笔记

Osi七层模型 物理层&#xff1a;比特流的透明传输 数据链路层&#xff1a;ip数据包装成帧并传输&#xff0c;处理相邻节点的数据传输。 网络层&#xff1a;选择路由和交换节点&#xff0c;处理任意节点的数据传输。 运输层&#xff1a;主机进程的数据传输服务&#xff0c;端到端…

6个在线网页原型工具的推荐选择

即时设计 即时设计可以说为中国设计师提供了很大的帮助。作为最受欢迎的在线网页原型图设计协作工具之一&#xff0c;在线协作是其核心特征。在线协作工作允许整个团队同时编辑文件&#xff0c;并可以随时随地访问。 团队共享组件库&#xff0c;使成员可以自由上传、下载和使用…