E卷-CPU算力分配-100分

E卷-刷题笔记合集🔗

题目描述

现有两组服务器A和B,每组有多个算力不同的CPU。其中:

  • 表示A组第i个CPU的运算能力
  • 表示B组第i个CPU的运算能力
  • 一组服务器的总算力是各CPU的算力之和

为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换。请找出用于交换的两个CPU的算力值,要求从A组选出的CPU算力尽可能小。

输入格式

输入包含多组测试数据,每组数据包含三行:

第一行输入两个整数 ,以空格分隔:

  • 表示A组服务器中的CPU数量
  • 表示B组服务器中的CPU数量

第二行输入 个整数,表示A组服务器中各个CPU的算力值。

第三行输入 个整数,表示B组服务器中各个CPU的算力值。

输出格式

对于每组测试数据,输出一行,包含两个整数,以空格分隔:

  • 第一个整数表示从A组选出的CPU算力
  • 第二个整数表示从B组选出的CPU算力

要求从A组选出的CPU的算力尽可能小。

样例输入1

2 2
1 1
2 2

样例输出1

1 2

样例解释1

从A组中选出算力为1的CPU,与B组中算力为2的CPU进行交换,使两组服务器的算力都等于3。

样例输入2

3 2
1 2 5
2 4

样例输出2

5 4

数据范围

提示

  1. 保证两组服务器的初始总算力不同
  2. 保证答案一定存在
  3. 注意处理多组测试数据

题解

这是一个数学推导和查找的问题。

解题思路:

  1. 数学推导: 设A组总算力为sumA,B组总算力为sumB 交换a和b后两组算力相等,可得: sumA - a + b = sumB - b + a sumA - sumB = 2(a - b) a - b = (sumA - sumB)/2

  2. 算法步骤:

    • 计算两组初始总算力sumA和sumB
    • 计算half_diff = (sumA - sumB)/2
    • 遍历A组每个算力值a
    • 计算对应的b = a - half_diff
    • 如果b存在于B组且当前a是最小的可行解,则更新答案
  3. 关键点:

    • 使用集合存储B组算力值加速查找
    • 记录并更新A组最小的可行解
    • 处理多组测试数据的输入

参考代码

def read_input():
    """读取输入数据"""
    l1, l2 = map(int, input().split())
    group_a = list(map(int, input().split()))
    group_b = list(map(int, input().split()))
    return l1, l2, group_a, group_b

def calculate_sums(group_a, group_b):
    """计算两组的总算力"""
    sum_a = sum(group_a)
    sum_b = sum(group_b)
    return sum_a, sum_b

def find_min_swap(group_a, group_b, sum_a, sum_b):
    """查找最小交换的CPU算力"""
    half_diff = (sum_a - sum_b) // 2
    set_b = set(group_b)
    
    min_a = float('inf')
    result = None
    
    for a in group_a:
        b = a - half_diff
        if b in set_b and a < min_a:
            min_a = a
            result = (a, b)
    
    return result

def solve():
    while True:
        try:
            l1, l2, group_a, group_b = read_input()
            sum_a, sum

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

算法刷题笔记 文章被收录于专栏

本专栏收集并整理了一些刷题笔记

全部评论

相关推荐

03-03 23:42
复旦大学 Java
tongx_:闹呢,这找不到其他人还活不活
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4402次浏览 77人参与
# 找AI工作可以去哪些公司? #
9571次浏览 260人参与
# 米连集团26产品管培生项目 #
13431次浏览 285人参与
# 你的实习产出是真实的还是包装的? #
20546次浏览 343人参与
# AI面会问哪些问题? #
28498次浏览 578人参与
# 春招至今,你的战绩如何? #
66857次浏览 589人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15501次浏览 225人参与
# 从事AI岗需要掌握哪些技术栈? #
9419次浏览 334人参与
# 中国电信笔试 #
32166次浏览 295人参与
# 你做过最难的笔试是哪家公司 #
34783次浏览 258人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
341064次浏览 2175人参与
# 金三银四,你的春招进行到哪个阶段了? #
22404次浏览 284人参与
# 同bg的你秋招战况如何? #
212254次浏览 1121人参与
# 哪些公司真双非友好? #
69762次浏览 289人参与
# 如何准备秋招 #
78321次浏览 868人参与
# 阿里笔试 #
179170次浏览 1318人参与
# 机械人避雷的岗位/公司 #
62716次浏览 393人参与
# 小马智行求职进展汇总 #
25149次浏览 80人参与
# 第一份工作一定要去大厂吗 #
15003次浏览 122人参与
# 担心入职之后被发现很菜怎么办 #
291410次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26298次浏览 310人参与
# 应届生第一份工资要多少合适 #
20709次浏览 86人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务