news 2026/6/15 13:46:44

P16198 [ROIR 2014 Day 2] Cond 空调 题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P16198 [ROIR 2014 Day 2] Cond 空调 题解

P16198 [ROIR 2014 Day 2] Cond 空调

Link: https://www.luogu.com.cn/problem/P16198

题目描述

在“智慧校园”项目中,决定为学校的每个教室安装一台新一代空调,用于自动制冷和通风。根据设计,每个教室只能装一台空调,且空调的功率必须满足教室的大小——教室越大,空调功率越强。

学校的教室编号从1 11n nn连续排列。已知编号为i ii的教室需要一台功率至少为a i a_iai瓦特的空调。

学校管理层提供了m mm种不同型号的空调可供采购。每种型号的空调都有对应的功率和价格。请你写个程序,算出给所有教室配备空调所需的最低总花费。

输入格式

第一行包含一个整数n ( 1 ≤ n ≤ 50 000 ) n\ (1 \le n \le 50\,000)n(1n50000),表示教室数量。

第二行包含n nn个整数a i ( 1 ≤ a i ≤ 1000 ) a_i\ (1 \le a_i \le 1000)ai(1ai1000),表示编号为i ii的教室所需空调的最低功率(瓦特)。

第三行包含一个整数m ( 1 ≤ m ≤ 50 000 ) m\ (1 \le m\le 50\,000)m(1m50000),表示可选空调型号数量。

接下来m mm行,每行包含两个整数b j b_jbjc j ( 1 ≤ b j ≤ 1000 , 1 ≤ c j ≤ 1000 ) c_j\ (1 \le b_j \le 1000, 1 \le c_j \le 1000)cj(1bj1000,1cj1000),分别表示第j jj种空调的功率(瓦特)和价格。

输出格式

输出一个整数,表示给所有教室配备空调的最低总花费。保证至少存在一种方案能满足所有教室的需求。

输入输出样例 #1

输入 #1

1 800 1 800 1000

输出 #1

1000

输入输出样例 #2

输入 #2

3 1 2 3 4 1 10 1 5 10 7 2 3

输出 #2

13

说明/提示

第一个样例中,只能买唯一一台空调,价格是1000 10001000元。

第二个样例中,最优方案是给第1 11和第2 22个教室装第4 44种型号的空调,给第3 33个教室装第3 33种型号的空调,总价是13 1313元(3 + 3 + 7 3 + 3 + 73+3+7)。

评分

对于50 5050分的数据,n , m ≤ 1000 n,m\le1000n,m1000

翻译来源:GPT 4.1 mini。


Solution

1. 题意

为教室安装空调,求满足各个教室最小功率需求的总花费。

2. 分析

注意到所有的空调功率皆为1 ∼ 1000 1\sim 100011000范围的整数,因此很容易想到,利用桶思想,统计每种功率的空调的最小花费,一边输入一边更新即可。然后对每个教室,选用一个功率大于需求且花费最低的即可。

注意将桶的元素初始化为无穷大或者− 1 -11,以表示不存在这种功率的空调。

3. 代码

usingSystem;classP16198{staticvoidMain(){stringinputData=Console.In.ReadToEnd();string[]tokens=inputData.Split(newchar[]{' ','\n','\r','\t'},StringSplitOptions.RemoveEmptyEntries);intti=0;intn,m;int[]a=newint[50005];int[]d=newint[1005];for(inti=1;i<=1000;++i)d[i]=2147483647;n=int.Parse(tokens[ti++]);for(inti=0;i<n;++i)a[i]=int.Parse(tokens[ti++]);m=int.Parse(tokens[ti++]);while(m-->0){intb,c;b=int.Parse(tokens[ti++]);c=int.Parse(tokens[ti++]);d[b]=Math.Min(d[b],c);}for(inti=999;i>=1;--i)d[i]=Math.Min(d[i],d[i+1]);longans=0;for(inti=0;i<n;++i)ans+=d[a[i]];Output(ans);}staticvoidOutput<Tp>(Tpvalue){Console.Write(value);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 5:44:12

别再傻傻分不清了!5分钟搞懂墨卡托和高斯-克吕格投影到底有啥区别

墨卡托与高斯-克吕格投影&#xff1a;5分钟掌握核心差异与实战选型指南当你第一次在Web地图上看到格陵兰岛的面积几乎与非洲相当&#xff0c;或是在国家测绘地形图中发现经线呈现复杂曲线时&#xff0c;背后其实是两种经典地图投影在"操纵"着空间表达。作为地理空间数…

作者头像 李华
网站建设 2026/6/14 5:44:13

保姆级避坑指南:从离线镜像到VSCode调试,搞定gem5 GCN3 Docker环境全流程

零基础搭建gem5 GCN3 GPU模拟环境的完整避坑手册在计算机体系结构研究领域&#xff0c;gem5模拟器因其模块化设计和高度可配置性而广受欢迎。特别是其GCN3 GPU模拟功能&#xff0c;为AMD显卡架构的研究提供了强大工具。然而&#xff0c;搭建这一环境的过程充满挑战——从Docker…

作者头像 李华
网站建设 2026/6/14 5:44:29

Docker 常见面试问题

IT策士 10余年一线大厂经验&#xff0c;专注 IT 思维、架构、职场进阶。我会在各个平台持续发布最新文章&#xff0c;助你少走弯路。Docker 早已不是“加分项”&#xff0c;而是现代软件开发、测试、部署的必备技能。面试官不会只问你“Docker 是什么”&#xff0c;而是会顺着一…

作者头像 李华