华为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、相似题目

相关推荐
步步为营DotNet2 分钟前
深度探索.NET 中ValueTask:优化异步性能的轻量级利器
java·spring·.net
栈与堆5 分钟前
LeetCode-88-合并两个有序数组
java·开发语言·数据结构·python·算法·leetcode·rust
董世昌418 分钟前
添加、删除、替换、插入元素的全方法指南
java·开发语言·前端
小当家.10514 分钟前
JVM八股详解(上部):核心原理与内存管理
java·jvm·学习·面试
heartbeat..14 分钟前
Spring 声明式事务:原理、使用及失效场景详解
java·spring·面试·事务
寻星探路15 分钟前
【Python 全栈测开之路】Python 基础语法精讲(三):函数、容器类型与文件处理
java·开发语言·c++·人工智能·python·ai·c#
xiaolyuh12317 分钟前
【XXL-JOB】执行器 Netty服务 & Tomcat 进程+资源共用详解
java·tomcat
jasnet_u20 分钟前
SpringCloudAlibaba的web微服务快速搭建
java·springboot·springlcoud
BD_Marathon22 分钟前
启动tomcat报错,80 端口已经被其他程序占用
java·tomcat
计算机毕设指导623 分钟前
基于微信小程序的精致护肤购物系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea