华为OD机考双机位C卷 - 日志解析(Java & Python & JS & GO & C++ & C)

日志解析

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

你是一个运维工程师,你同时负责n个系统的运维工作,已知每个系统每天会都从现场采集大量的现网运行日志(错误日志、接口日志等)下来生成一个日志文件,每个系统采集下来的日志文件大小均不相同。为了解析这些日志,你给每个系统配备了一台默认服务器进行日志解析,且此台服务器只能给本系统 使用 ,由于所配置的服务器规则均相同,因为解析日志的速度也是相同的,即每秒钟可以解析defaultCnt条日志。

现在你发现解析的速度达不到预期,但你手头上还有一部分额外的资源可以使用,这些资源可以在任意时刻配置给任意一台服务器。但有个限制,那就是同一时刻只能配给其中一台服务器器,且服务器器是能整合全部额外资源,当然在下一秒钟即可配备给另外一台服务器。某一台服务器配备了额外资源以后,则每秒钟会增加解析extraCnt条日志,即每秒可解析(defaultCnt+extraCnt)条日志。

输入描述

输入一共2行

第一行为3个正整数n、defaultCnt、extraCnt,

第二行为n个正整数, a1 ,a2,…,an,分别表示每个系统采集的日志条目数

已知:1 ≤ n ≤ 1×10⁵,1 ≤ defaultCnt, extraCnt ≤ 100,1 ≤ ai ≤ 1000

输出描述

一个正整数,表示解析完成全部日志的最少时间。

示例1

输入

3 2 1
1 2 3

输出

1

说明

每个服务器每秒可解析2条日志,直接将额外的资源配备给第三台服务器器,则第三台服务器每秒可解析(2+1=3)条日志,则只需1秒即可解析完三个系统的全部日志。

示例2

输入

1 1 1
4

输出

2

说明

解题思路

核心思想

本题的核心在于如何合理分配唯一的额外加速资源,使得所有系统完成日志解析的时间最短。

  1. 问题转化:我们要找到一个最小的时间 $T$,使得在这个时间 $T$ 内,通过合理分配额外资源,所有系统都能处理完各自的日志 $a_i$。
  2. 单调性:显然,给定的时间越长,每个服务器能处理的日志越多,越容易满足条件。因此,时间 $T$ 与“能否完成任务”之间存在单调性,可以使用 二分查找 来确定最小时间 $T$。
  3. 判定条件 (check 函数)
    • 对于给定的时间 $T$,每个服务器 $i$ 自带的处理能力是 $T \times defaultCnt$。
    • 如果 $T \times defaultCnt \ge a_i$,说明该服务器不需要额外资源就能完成任务。
    • 如果 $T \times defaultCnt < a_i$,说明该服务器还需要处理 $diff = a_i - T \times defaultCnt$ 条日志。这部分日志需要通过额外资源来处理。
    • 额外资源每秒能提供 $extraCnt$ 的处理能力(注意是增加了 $extraCnt$,即总速度变为 $defaultCnt + extraCnt$,但这里我们只计算额外资源贡献的部分)。
    • 该服务器需要占用额外资源的时间为 $t_i = \lceil diff / extraCnt \rceil$。
    • 由于额外资源在同一时刻只能分配给一台服务器,因此所有服务器占用额外资源的总时间 $\sum t_i$ 不能超过总时间 $T$。
    • 如果 $\sum t_i \le T$,则说明该时间 $T$ 可行。
  4. 二分范围
    • 下界 left = 0
    • 上界 right = max(a_i)。因为即使没有额外资源,最慢的服务器处理 $a_i$ 条日志所需时间也就大概是 $a_i / defaultCnt$,由于 $defaultCnt \ge 1$,所以时间不会超过 $a_i$。为了保险,取所有日志数量的最大值即可。

复杂度分析

  • 时间复杂度:$O(N \log M)$。
    • 二分查找的范围是 $M$(最大日志数,本题为 1000),迭代次数为 $\log M$。
    • 每次 check 函数需要遍历 $N$ 个系统,耗时 $O(N)$。
    • 总时间复杂度为 $O(N \log M)$。给定 $N=10^5, M=1000$,计算量约为 $10^6$,完全满足要求。
  • 空间复杂度:$O(1)$(如果不考虑存储输入的数组),仅需常数空间。
posted @ 2026-03-12 20:22  华为od算法大师  阅读(1)  评论(0)    收藏  举报