华为OD机试真题【服务器能耗统计】

1、题目描述

【服务器能耗统计】

服务器有三种运行状态:空载、单任务、多任务,每个时间片的能耗的分别为1、3、4;

每个任务由起始时间片和结束时间片定义运行时间;

如果一个时间片只有一个任务需要执行,则服务器处于单任务状志;

如果一个时间片有多个任务需要执行,则服务器处于多任务状态;

给定一个任务列表,请计算出从第一个任务开始,到所有任务结束,服务器的总能耗。

【输入描述】

第一行的数字表示一共有多少个任务

后续每行包含由空格分割的两个整数,用于确定每一个任务的起始时间片和结束时间片;

任务执行时间包含起始和结束时间片,即任务执行时间是左团右闭的;

结束时间片一定大于等于起始时间片;

【输出描述】

一个整数,代表服务器的总能耗

【样例1】
输入:

2

2 5

8 9
输出:

20

解释:

0,1\]没有任务需要执行,能耗为0 \[2,5\]处于单任务状态,能耗为3*4=12 \[6,7\]处于空载状态,能耗为1* 2=2 \[8,9\]处于单任务状态,能耗为3\*2=6 共计能耗为12+2+6=20 **【样例2】 输入:** 3 4 8 1 6 2 9 **输出:** 34 解释: \[0,1\]没有任务需要执行,能耗为0 \[1,1\]处于单任务状态,能耗为3*1=3 \[2,8\]处于多任务状态,能耗为4* 7=28 \[9,9\]处于单任务状态,能耗为3\*1=3 共计能耗为3+28+3=34 #### 2、解题思路 统计出最小和最大的运行时间,并统计从0到最大运行时间之间每个时间的任务数量,遍历每个任务的开始时间到结束时间并将其任务数量加一。最后,遍历统计的任务数量,空载消化1,单任务消化3,多任务消化3,注意是最小开始时间到最大结束时间之间。 #### 3、参考代码 ```java import java.util.Scanner; /** * @Author * @Date 2023/5/5 22:55 */ public class 服务器能耗统计 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int num = in.nextInt(); int[][] times = new int[num][2]; int minTime = Integer.MAX_VALUE; int maxTime = 0; for (int i = 0; i < num; i++) { times[i][0] = in.nextInt(); times[i][1] = in.nextInt(); minTime = Math.min(minTime, times[i][0]); maxTime = Math.max(maxTime, times[i][1]); } System.out.println(total(num, times, minTime, maxTime)); } } public static int total(int num, int[][] times, int minTime, int maxTime) { // 统计每个时间的任务数 int[] time = new int[maxTime + 1]; for (int i = 0; i < num; i++) { for (int j = times[i][0]; j <= times[i][1]; j++) { // 遍历开始时间到结束时间 time[j]++; } } int res = 0; for (int i = minTime; i <= maxTime; i++) { if (time[i] == 0) { // 空载 res += 1; } else if (time[i] == 1) { // 单任务 res += 3; } else { res += 4; } } return res; } } ``` #### 4、相似题目

相关推荐
Q_9709563916 分钟前
java+vue+SpringBoo足球社区管理系统(程序+数据库+报告+部署教程+答辩指导)
java·开发语言·数据库
要开心吖ZSH21 分钟前
微服务架构的演进:迈向云原生
java·微服务·云原生
为了更好的明天而战40 分钟前
Java 中的 ArrayList 和 LinkedList 区别详解(源码级理解)
java·开发语言
JosieBook1 小时前
【Java编程动手学】Java中的数组与集合
java·开发语言·python
N_NAN_N1 小时前
类图+案例+代码详解:软件设计模式----单例模式
java·单例模式·设计模式
weixin_399380691 小时前
k8s一键部署tongweb企业版7049m6(by why+lqw)
java·linux·运维·服务器·云原生·容器·kubernetes
lang201509282 小时前
Reactor ConnectableFlux支持多订阅者
java·网络
R-sz2 小时前
java流式计算 获取全量树形数据,非懒加载树,递归找儿
java·开发语言·windows
Ramos丶2 小时前
【ABAP】 从无到有 新建一个Webdynpro程序
java·前端·javascript
sniper_fandc2 小时前
SpringMVC详解
java·springmvc