AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2706. CPU算力分配

简单通过率 54% · 提交 1,213 · 通过 660
哈希表数学枚举哈希集合

小慕有两组服务器A和B,每组都包含多个算力不同的CPU,其中Ai表示A组第i个CPU的运算能力,Bi表示B组第i个CPU的运算能力。一组服务器的是组内所有CPU算力的总和。 为了使两组服务器的总算力相等,小慕允许从每组中各选出一个CPU进行一次。请找出用于交换的两个CPU的算力,并且要求从A组服务器中选出的CPU,其

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一行输入为L1和L2,以空格分隔,L1表示A组服务器中的CPU数量,L2表示B组服务器中的CPU数量 </p> <p> 第二行输入为A组服务器中各个CPU的算力值,以空格分隔。 </p> <p> 第三行输入为B组服务器中各个CPU的算力值,以空格分隔。 </p> <p> 1 <= L1 <= 10000 </p> <p> 1 <= L2 <= 10000 </p> <p> 1 <= A[i] <= 100000 </p> <p> 1 <= B[i] <= 100000 </p>

输出描述

<div data-page-id="WQPJdPX11o9thVxlfYCcdEgznJb" data-docx-has-block-data="false"> <div class="ace-line ace-line old-record-id-QQHudNhZZooiN3xr35yc7izqn0c"> <div data-page-id="WQPJdPX11o9thVxlfYCcdEgznJb" data-docx-has-block-data="false"> <div class="ace-line ace-line old-record-id-QQHudNhZZooiN3xr35yc7izqn0c"> 对于每组测试数据,输出两个整数,以空格分隔,依次表示<code>A</code>组选出的CPU算力、<code>B</code>组选出的CPU算力,要求从<code>A</code>组选出的CPU的算力尽可能小。 </div> </div> <span data-lark-record-data="{"rootId":"WQPJdPX11o9thVxlfYCcdEgznJb","text":{"initialAttributedTexts":{"text":{"0":"对于每组测试数据,输出两个整数,以空格分隔,依次表示A组选出的CPU算力、B组选出的CPU算力,要求从A组选出的CPU的算力尽可能小。"},"attribs":{"0":"*0+q*0*1+1*0+a*0*1+1*0+d*0*1+1*0+f"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"],"1":["inlineCode","true"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":18,"type":"text","selection":{"start":0,"end":67},"recordId":"QQHudNhZZooiN3xr35yc7izqn0c"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span> </div> </div> <span data-lark-record-data="{"rootId":"WQPJdPX11o9thVxlfYCcdEgznJb","text":{"initialAttributedTexts":{"text":{"0":"对于每组测试数据,输出两个整数,以空格分隔,依次表示A组选出的CPU算力、B组选出的CPU算力,要求从A组选出的CPU的算力尽可能小。"},"attribs":{"0":"*0+q*0*1+1*0+a*0*1+1*0+d*0*1+1*0+f"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"],"1":["inlineCode","true"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":18,"type":"text","selection":{"start":0,"end":67},"recordId":"QQHudNhZZooiN3xr35yc7izqn0c"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

示例

示例 1

输入

3 4
1 2 3
1 2 3 4

输出

1 3

说明:有两种可能的选择,选择A组中的1和B组中的3进行交换,或者选择A组中的2和B组中的4进行交换,但由于要求A组选择的算力要尽可能地小,所以选择前者。

示例 2

输入

2 2
1 1
2 2

输出

1 2

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
A组服务器 CPU: 1, 2, 3 总算力 = 1+2+3 = 6 1 2 3 B组服务器 CPU: 1, 2, 3, 4 总算力 = 1+2+3+4 = 10 1 2 3 4 交换后总算力相等 A组选CPU算力1(最小) B组选CPU算力3 交换后A组: 6-1+3=8 B组: 10-3+1=8 另一种选择: A组选2,B组选4 但A组1更小,所以选前者
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「CPU算力分配」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。