#P16895. [GKS 2022 #G] Happy Subarrays

    ID: 19223 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>2022前缀和单调栈Google Kick Start

[GKS 2022 #G] Happy Subarrays

题目描述

定义 F(B,L,R)F(B, L, R) 为数组 BB 中下标从 LL 到 RR(包含两端)的子数组之和。形式化地,F(B,L,R)=BL+BL+1+⋯+BRF(B, L, R) = B_L + B_{L+1} + \dots + B_R。

一个长度为 KK 的数组 CC 被称为 快乐数组,如果 CC 的所有前缀和均为非负。形式化地,项 F(C,1,1),F(C,1,2),…,F(C,1,K)F(C, 1, 1), F(C, 1, 2), \dots, F(C, 1, K) 全部非负。

给定一个包含 NN 个整数的数组 AA,求 AA 中所有快乐子数组的和的总和。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含一个整数 NN,表示输入数组 AA 中整数的个数。第二行包含 NN 个整数 A1,A2,…,ANA_1, A_2, \dots, A_N,表示给定的输入数组 AA。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是给定输入数组 AA 中所有快乐子数组的和的总和。

2
5
1 -2 3 -2 4
3
1 0 3
Case #1: 14
Case #2: 12

提示

在样例 #1 中,快乐子数组为 [1][1]、[3][3]、[3,−2][3, -2]、[3,−2,4][3, -2, 4] 和 [4][4],它们的和分别为 11、33、11、55 和 44。将这些和相加得到 1414。

在样例 #2 中,快乐子数组为 [1][1]、[1,0][1, 0]、[1,0,3][1, 0, 3]、[0][0]、[0,3][0, 3] 和 [3][3],它们的和分别为 11、11、44、00、33 和 33。将这些和相加得到 1212。

限制条件

1≤T≤1001 \le T \le 100。

对于所有 ii,−800≤Ai≤800-800 \le A_i \le 800。

测试集 1

1≤N≤2001 \le N \le 200。

测试集 2

最多 3030 个测试用例满足:

1≤N≤4×1051 \le N \le 4 \times 10^5。

其余测试用例满足:

1≤N≤2001 \le N \le 200。

翻译由 DeepSeek V4 Pro 完成