CF1998C.Perform Operations to Maximize Score

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我看见了 satyam343。我在发抖。请这次多出一些中位数相关的问题。我太喜欢这些了。拜托了 satyam343,我们相信你。

—— satyam343 的头号粉丝

给定一个长度为 nn 的数组 aa 和一个整数 kk。你还会得到一个长度为 nn 的二进制数组 bb。

你最多可以进行 kk 次如下操作:

  • 选择一个下标 ii(1≤i≤n1 \leq i \leq n),且 bi=1b_i = 1。将 aia_i 增加 11(即 ai=ai+1a_i = a_i + 1)。

你的得分定义为 max⁡i=1n(ai+median⁡(ci))\max\limits_{i = 1}^{n} \left( a_i + \operatorname{median}(c_i) \right),其中 cic_i 表示将 aia_i 从 aa 中删除后得到的长度为 n−1n-1 的数组。换句话说,你的得分是所有 ai+median⁡(ci)a_i + \operatorname{median}(c_i) 中的最大值,ii 从 11 到 nn。

请你在最优地进行操作后,求出你能获得的最大得分。

对于任意数组 pp,median⁡(p)\operatorname{median}(p) 定义为 $ \left\lfloor \frac{|p|+1}{2} \right\rfloor $ 小的元素。例如,median⁡([3,2,1,3])=2\operatorname{median}([3,2,1,3]) = 2,median⁡([6,2,4,5,1])=4\operatorname{median}([6,2,4,5,1]) = 4。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 kk(2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5,0≤k≤1090 \leq k \leq 10^9),分别表示数组 aa 的长度和你可以进行的操作次数。

接下来一行包含 nn 个用空格分隔的整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \leq a_i \leq 10^9),表示数组 aa。

接下来一行包含 nn 个用空格分隔的整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(bib_i 为 00 或 11),表示数组 bb。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出你能获得的最大得分,每个测试用例输出一行。

输入输出样例

  • 输入#1

    8
    2 10
    3 3
    1 1
    3 10
    3 3 3
    0 0 0
    4 4
    2 1 5 1
    0 1 0 1
    5 4
    7 5 2 5 4
    0 0 1 0 1
    5 1
    5 15 15 2 11
    1 0 0 1 1
    5 2
    10 11 4 10 15
    1 1 0 1 0
    4 4
    1 1 2 5
    1 1 0 0
    2 1000000000
    1000000000 1000000000
    1 1

    输出#1

    16
    6
    8
    13
    21
    26
    8
    3000000000

说明/提示

对于第一个测试用例,最优的做法是对两个元素各进行 55 次操作,此时 a=[8,8]a = [8,8]。所以最大得分为 max⁡(8+median⁡[8],8+median⁡[8])=16\max(8 + \operatorname{median}[8], 8 + \operatorname{median}[8]) = 16,因为 c1=[a2]=[8]c_1 = [a_2] = [8]。可以证明无法获得更高的得分。

对于第二个测试用例,你无法对任何元素进行操作,所以 aa 仍为 [3,3,3][3,3,3]。所以最大得分为 3+median⁡[3,3]=63 + \operatorname{median}[3, 3] = 6,因为 c1=[a2,a3]=[3,3]c_1 = [a_2, a_3] = [3, 3]。可以证明无法获得更高的得分。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页