操作的本质
每次操作选择两个不同位置 i 和 j,令 ei=ei+ej,并将 ej 置为 0。
通过该操作,我们可以将任意位置的能量转移到另一个位置,并让原来的位置归零。正数可以被集中到同一个位置,负数则可以被搬运到序列末尾,从而不影响前面的前缀最大值。
前缀最大值的最大化目标
我们希望最大化
[
有一个包含 n 个整数的序列 e1,e2,…,en,表示 n 个能量核心的初始能量。你可以进行任意多次操作,每次操作选择两个不同的位置 i,j(1≤i,j≤n,ieqj),将 ei 修改为 ei+ej,并将 ej 修改为 0。
请计算经过若干次操作后,序列全部前缀最大值之和的最大可能值,即 ∑i=1nmax(e1,e2,…,ei) 的最大值。
数据范围:测试数据组数 T 不超过 104,每组数据中 n 不超过 2×105,所有测试数据的 n 总和也不超过 2×105。每个能量的绝对值不超过 n。
第一行包含一个整数 T(1≤T≤104),表示测试数据组数。接下来每组数据:第一行包含一个整数 n(1≤n≤2×105),表示序列长度;第二行包含 n 个整数 e1,e2,…,en(−n≤ei≤n),表示初始能量。保证所有测试数据的 n 总和不超过 2×105。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册