#P16757. [GKS 2020 #C] Perfect Subarray

[GKS 2020 #C] Perfect Subarray

题目描述

Cristobal 有一个包含 NN 个(可能为负)整数的数组。数组中第 ii 个整数为 AiA_i。数组的一个连续非空子数组称为 完美的,如果它的总和是一个 完全平方数。完全平方数是某个非负整数与自身相乘得到的数。例如,前五个完全平方数是 001144991616

请问有多少个子数组是完美的?如果两个子数组在数组中的起始或结束下标不同,则视为不同,即使它们包含相同的值且顺序相同。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含整数 NN。第二行包含 NN 个整数,描述 Cristobal 的数组。其中第 ii 个整数为 AiA_i

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是完美子数组的数量。

3
3
2 2 6
5
30 30 9 1 30
4
4 0 0 16
Case #1: 1
Case #2: 3
Case #3: 9

提示

在样例 #1 中,有一个完美子数组:[2,2][2, 2],其和为 222^2

在样例 #2 中,有三个完美子数组:

  • [9][9],其和为 323^2
  • [1][1],其和为 121^2
  • [30,30,9,1,30][30, 30, 9, 1, 30],其和为 10210^2

在样例 #3 中,有九个完美子数组:

  • [4][4],其和为 222^2
  • [4,0][4, 0],其和为 222^2
  • [4,0,0][4, 0, 0],其和为 222^2
  • [0][0],其和为 020^2
  • [0,0][0, 0],其和为 020^2
  • [0,0,16][0, 0, 16],其和为 424^2
  • [0][0],其和为 020^2
  • [0,16][0, 16],其和为 424^2
  • [16][16],其和为 424^2

注意:对于本题的测试集 2,我们不建议使用解释型/较慢的语言。

限制条件

1T1001 \le T \le 100

对于所有 ii100Ai100-100 \le A_i \le 100

测试集 1

1N10001 \le N \le 1000

测试集 2

最多 55 个测试用例满足 1N1051 \le N \le 10^5

其余测试用例满足 1N10001 \le N \le 1000

翻译由 DeepSeek V4 Pro 完成