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

相关推荐
robin_suli2 分钟前
Spring事务的传播机制
android·java·spring
青云交4 分钟前
Java 大视界 -- Java 大数据在智能电网电力市场交易数据分析与策略制定中的关键作用(162)
java·大数据·数据分析·交易策略·智能电网·java 大数据·电力市场交易
m0Java门徒10 分钟前
Java 递归全解析:从原理到优化的实战指南
java·开发语言
云徒川19 分钟前
【设计模式】原型模式
java·设计模式·原型模式
张张张31242 分钟前
4.2学习总结 Java:list系列集合
java·学习
KATA~1 小时前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL1 小时前
一文总结常见项目排查
java·服务器·数据库
shaoing1 小时前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
腥臭腐朽的日子熠熠生辉2 小时前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
ejinxian2 小时前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring