本题需要模拟一系列强化操作,每次选取当前能量值最低的核心进行能量注入,并立即给出所有核心中的最大能量值。关键点在于既要快速找到最小值,又要能够知道更新后的全局最大值。
算法思路:
max_val,记录当前所有核心能量值中的最大值。初始时,将所有初始能量值 ci 插入堆中,并计算出初始最大值赋给 max_val。cur_min。你在维护一座能量站,站内有 n 个能量核心,初始能量值分别为 c1,c2,…,cn。你需要按顺序进行 m 次强化操作:每次选择当前能量值最低的核心,为其注入能量 vj,使该核心的能量值增加 vj。每次强化完成后,你想立刻知道此时所有核心中的最大能量值是多少。
核心数量 n 和强化次数 m 均为正整数,不超过 105。所有初始能量值和每次注入的能量值均为非负整数,且不超过 109。
第一行包含两个整数 n 和 m,分别表示核心的个数和强化操作的次数。 第二行包含 n 个整数 c1,c2,…,cn,表示每个核心的初始能量值。 第三行包含 m 个整数 v1,v2,…,vm,依次表示每次强化操作所注入的能量值。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.