#P16895. [GKS 2022 #G] Happy Subarrays

[GKS 2022 #G] Happy Subarrays

题目描述

定义 F(B,L,R)F(B, L, R) 为数组 BB 中下标从 LLRR(包含两端)的子数组之和。形式化地,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],它们的和分别为 1133115544。将这些和相加得到 1414

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

限制条件

1T1001 \le T \le 100

对于所有 ii800Ai800-800 \le A_i \le 800

测试集 1

1N2001 \le N \le 200

测试集 2

最多 3030 个测试用例满足:

1N4×1051 \le N \le 4 \times 10^5

其余测试用例满足:

1N2001 \le N \le 200

翻译由 DeepSeek V4 Pro 完成