CF1667B.Optimal Partition

提高+/省选-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an array aa consisting of nn integers. You should divide aa into continuous non-empty subarrays (there are 2n−12^{n-1} ways to do that).

Let s=al+al+1+…+ars=a_l+a_{l+1}+\ldots+a_r. The value of a subarray al,al+1,…,ara_l, a_{l+1}, \ldots, a_r is:

  • (r−l+1)(r-l+1) if s>0s \gt 0,
  • 00 if s=0s=0,
  • −(r−l+1)-(r-l+1) if s<0s \lt 0.

What is the maximum sum of values you can get with a partition?

给你一个包含 nn 个整数的数组 aa。你需要将 aa 划分为若干个连续的非空子数组(共有 2n−12^{n-1} 种划分方式)。

设 s=al+al+1+…+ars = a_l + a_{l+1} + \ldots + a_r。子数组 al,al+1,…,ara_l, a_{l+1}, \ldots, a_r 的值定义为:

  • 若 s>0s \gt 0,则值为 (r−l+1)(r-l+1);
  • 若 s=0s = 0,则值为 00;
  • 若 s<0s \lt 0,则值为 −(r−l+1)-(r-l+1)。

在所有可能的划分中,你能得到的最大值之和是多少?

输入格式

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤5⋅1051 \le t \le 5 \cdot 10^5) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer nn (1≤n≤5⋅1051 \le n \le 5 \cdot 10^5).

The second line of each test case contains nn integers a1a_1, a2a_2, ..., ana_n (−109≤ai≤109-10^9 \le a_i \le 10^9).

It is guaranteed that the sum of nn over all test cases does not exceed 5⋅1055 \cdot 10^5.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤5⋅1051 \le t \le 5 \cdot 10^5),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤5⋅1051 \le n \le 5 \cdot 10^5)。

每个测试用例的第二行包含 nn 个整数 a1a_1, a2a_2, ..., ana_n(−109≤ai≤109-10^9 \le a_i \le 10^9)。

保证所有测试用例的 nn 之和不超过 5⋅1055 \cdot 10^5。

输出格式

For each test case print a single integer — the maximum sum of values you can get with an optimal parition.

对于每个测试用例,输出一个整数——在最优划分下你能获得的最大值之和。

输入输出样例

  • 输入#1

    5
    3
    1 2 -3
    4
    0 -2 3 -4
    5
    -1 -2 3 -1 -1
    6
    -1 2 -3 4 -5 6
    7
    1 -1 -1 1 -1 -1 1

    输出#1

    1
    2
    1
    6
    -1

说明/提示

Test case 11: one optimal partition is [1,2][1, 2], [−3][-3]. 1+2>01+2 \gt 0 so the value of [1,2][1, 2] is 22. −3<0-3 \lt 0, so the value of [−3][-3] is −1-1. 2+(−1)=12+(-1)=1.

Test case 22: the optimal partition is [0,−2,3][0, -2, 3], [−4][-4], and the sum of values is 3+(−1)=23+(-1)=2.

测试用例 11:一个最优划分是 [1,2][1, 2]、[−3][-3]。由于 1+2>01+2 \gt 0,因此 [1,2][1, 2] 的值为 22;由于 −3<0-3 \lt 0,因此 [−3][-3] 的值为 −1-1。总和为 2+(−1)=12+(-1)=1。

测试用例 22:最优划分为 [0,−2,3][0, -2, 3] 和 [−4][-4],其值之和为 3+(−1)=23+(-1)=2。

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

首页