新闻详情

新闻详情

首页 / 资讯中心 / 详情

CSP-S 2021 廊桥分配 题解

发布时间:2026/8/31 2:03:34来源:尧图网络
CSP-S 2021 廊桥分配 题解
题目大意机场一共有 n 个廊桥可以分配一部分给国内区剩下给国际区。国内航班只能使用国内区廊桥国际航班只能使用国际区廊桥。飞机严格按照抵达时间先后到达遵循先到先得如果本区还有空闲廊桥则占用廊桥停靠没有空闲廊桥就停靠远机位。远机位数量无限。给定所有国内、国际航班的抵达、离开时刻请你把 n 个廊桥划分给国内和国际求能够停靠廊桥的飞机数量的最大值。解题思路这道题有点像力扣上的“会议室安排”。使用小根堆维护正在被占用廊桥的飞机的离开时间。处理每一架航班[l,r]将堆中所有离开时间小于l的元素弹出代表飞机飞走廊桥释放如果堆内元素数量小于 k代表还有空闲廊桥该飞机停靠廊桥将离开时间入堆计数 1否则没有廊桥可用去远机位。暴力做法枚举国内分配 i 个廊桥国际分配n-i个廊桥对每一个 i 都完整模拟一遍航班。暴力超时的原因对于不同的廊桥数量重复模拟同一批航班大量重复运算。优化我们希望只模拟一次全部 n 个廊桥直接得到分配每个廊桥对应的答案。给廊桥编号1,2,3…n遵循规则每次优先选择编号最小的空闲廊桥。维护两个堆b_id小根堆存储 pair (飞机离开时间廊桥编号)记录哪些廊桥正在被占用q_id小根堆存储空闲廊桥的编号。模拟过程初始化1到n全部廊桥放入空闲堆遍历每一个航班先把已经飞走的飞机对应的廊桥释放归还到空闲编号堆如果存在空闲廊桥取出编号最小的廊桥给当前航班记录这个廊桥承接了 1 架飞机res[id] 代表编号为 id 的廊桥一共承接多少架飞机。对res数组求前缀和得到pd[x]国内分配 x 个廊桥可以停靠的飞机总数pg[x]国际分配 x 个廊桥可以停靠的飞机总数。最后枚举所有分配方案国内拿 i 个廊桥国际拿n-i个廊桥求ansmax(ans,pd[i]pg[n-i])(0in)#includeiostream#includealgorithm#includequeueusingnamespacestd;intn,m1,m2;vectorintjs(vectorpairint,intv,intk){vectorintres(k1,0);priority_queuepairint,int,vectorpairint,int,greaterpairint,intb_id;//廊桥的编号和离开时间priority_queueint,vectorint,greaterintq_id;//空闲的廊桥编号for(inti1;ik;i){q_id.push(i);}for(inti0;iv.size();i){intlv[i].first;intrv[i].second;// 释放已经离开的飞机归还廊桥编号while(!b_id.empty()b_id.top().firstl){intidb_id.top().second;b_id.pop();q_id.push(id);}if(q_id.empty()){continue;}intidq_id.top();q_id.pop();res[id];b_id.push({r,id});}returnres;}intmain(){cinnm1m2;vectorpairint,intd(m1);vectorpairint,intg(m2);for(inti0;im1;i){cind[i].firstd[i].second;}for(inti0;im2;i){cing[i].firstg[i].second;}sort(d.begin(),d.end());sort(g.begin(),g.end());intans0;vectorintcdjs(d,n);vectorintcgjs(g,n);vectorintpd(n1,0),pg(n1,0);//前缀和数组for(inti0;in;i){pd[i]pd[i-1]cd[i];pg[i]pg[i-1]cg[i];}for(inti0;in;i){ansmax(ans,pd[i]pg[n-i]);}coutans;return0;}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

股票量化交易学习笔记打包zip:从Python回测到风险管理的完整路径 2026/8/31 18:41:16

股票量化交易学习笔记打包zip:从Python回测到风险管理的完整路径

简介:本资源是一份面向量化交易初学者与进阶学习者的系统性学习笔记,聚焦股票市场中的数学建模、策略开发与实操落地,解决理论难衔接代码、策略缺完整回测流程、风险控制缺乏量化工具等常见痛点。压缩包共39个文件,含16个Python脚…

阅读更多 →
PHP授权系统不是防盗门,而是数字产品生命周期管控协议栈 2026/8/31 18:41:16

PHP授权系统不是防盗门,而是数字产品生命周期管控协议栈

简介:这是一套基于PHP开发的轻量级软件授权管理系统源码,面向中小型SaaS服务、插件开发者及独立程序员,用于实现产品激活、授权验证、在线续期与设备绑定等核心授权管控功能。资源包共362个文件,包含115个PHP后端逻辑文件、99个JS…

阅读更多 →
1. 命令行与环境 2026/8/31 18:41:16

1. 命令行与环境

1. 命令行与环境为获取各种设置信息, 解释器会扫描命令行与环境。其他实现的命令行方案可能会有所不同。 详见 。1.1. 命令行调用 时,可以指定下列任意选项:python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [ar…

阅读更多 →
JDK 1.8下载安装配置指南:版本选择、环境变量与避坑攻略 2026/8/31 18:41:16

JDK 1.8下载安装配置指南:版本选择、环境变量与避坑攻略

简介:这套资源是 Java JDK 1.8 的完整打包下载,面向 Java 初学者、企业级开发者及需要搭建历史开发环境的维护人员,可直接用于本地安装与配置。压缩包内共 1517 个文件,以 727 个 jar 核心类库与运行组件为主,同时包含…

阅读更多 →
Python校园舆情管理系统:毕业设计全栈开发与情感分析实战 2026/8/31 18:41:16

Python校园舆情管理系统:毕业设计全栈开发与情感分析实战

简介:这是一套面向高校计算机专业本科生的Python毕业设计与课程设计实战项目,聚焦校园舆情监测与管理场景,解决学生缺乏完整Web系统开发经验、难以将Python理论知识落地为可运行应用的痛点。资源包共254个文件,37.64MB&#xff0c…

阅读更多 →
【Paimon 学习笔记 一】从 Hive 到Paimon: 大数据表发展历程 2026/8/31 18:36:14

【Paimon 学习笔记 一】从 Hive 到Paimon: 大数据表发展历程

Flink SQL 系列里,订单表、城市维表、商品维表、订单宽表全都建在 Paimon 上——但一直只管用,没开过盒。这个系列把盒子打开,共四篇: 前世今生(本篇):Hive 的工作方式、三个坎、数据湖三剑客&a…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞