P16757 [GKS 2020 #C] Perfect Subarray

题目描述

Cristobal 有一个包含 $N$ 个(可能为负)整数的数组。数组中第 $i$ 个整数为 $A_i$。数组的一个连续非空子数组称为 **完美的**,如果它的总和是一个 **完全平方数**。完全平方数是某个非负整数与自身相乘得到的数。例如,前五个完全平方数是 $0$、$1$、$4$、$9$ 和 $16$。 请问有多少个子数组是完美的?如果两个子数组在数组中的起始或结束下标不同,则视为不同,即使它们包含相同的值且顺序相同。

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例的第一行包含整数 $N$。第二行包含 $N$ 个整数,描述 Cristobal 的数组。其中第 $i$ 个整数为 $A_i$。

输出格式

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

说明/提示

在样例 #1 中,有一个完美子数组:$[2, 2]$,其和为 $2^2$。 在样例 #2 中,有三个完美子数组: - $[9]$,其和为 $3^2$。 - $[1]$,其和为 $1^2$。 - $[30, 30, 9, 1, 30]$,其和为 $10^2$。 在样例 #3 中,有九个完美子数组: - $[4]$,其和为 $2^2$。 - $[4, 0]$,其和为 $2^2$。 - $[4, 0, 0]$,其和为 $2^2$。 - $[0]$,其和为 $0^2$。 - $[0, 0]$,其和为 $0^2$。 - $[0, 0, 16]$,其和为 $4^2$。 - $[0]$,其和为 $0^2$。 - $[0, 16]$,其和为 $4^2$。 - $[16]$,其和为 $4^2$。 **注意**:对于本题的测试集 2,我们不建议使用解释型/较慢的语言。 ### 限制条件 $1 \le T \le 100$。 对于所有 $i$,$-100 \le A_i \le 100$。 **测试集 1** $1 \le N \le 1000$。 **测试集 2** 最多 $5$ 个测试用例满足 $1 \le N \le 10^5$。 其余测试用例满足 $1 \le N \le 1000$。 翻译由 DeepSeek V4 Pro 完成