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

相关推荐
五岳18 小时前
分库分表数据源ShardingSphereDataSource的Connection元数据误用问题分析
java·mysql·爬坑
带刺的坐椅18 小时前
迈向 MCP 集群化:Solon AI (支持 Java8+)在解决 MCP 服务可扩展性上的探索与实践
java·ai·llm·solon·mcp
鼠爷ねずみ19 小时前
SpringCloud前后端整体开发流程-以及技术总结文章实时更新中
java·数据库·后端·spring·spring cloud
代码or搬砖19 小时前
String字符串
android·java·开发语言
AM越.21 小时前
Java设计模式详解--装饰器设计模式(含uml图)
java·设计模式·uml
59803541521 小时前
【java工具类】小数、整数转中文大写
android·java·开发语言
JIngJaneIL21 小时前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
吃喝不愁霸王餐APP开发者21 小时前
Java后端服务在对接全国性霸王餐API时的多数据中心部署与就近调用策略
java·开发语言
从心归零21 小时前
springboot-jpa的批量更新方法
java·spring boot·spring