CF1398C.Good Subarrays
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a1,a2,…,an consisting of integers from 0 to 9. A subarray al,al+1,al+2,…,ar−1,ar is good if the sum of elements of this subarray is equal to the length of this subarray (i=l∑rai=r−l+1).
For example, if a=[1,2,0], then there are 3 good subarrays: a1…1=[1],a2…3=[2,0] and a1…3=[1,2,0].
Calculate the number of good subarrays of the array a.
给你一个由 0 到 9 的整数组成的数组 a1,a2,…,an。若子数组 al,al+1,al+2,…,ar−1,ar 的元素之和等于该子数组的长度,则称其为好子数组(即 i=l∑rai=r−l+1)。
例如,若 a=[1,2,0],则共有 3 个好子数组:a1…1=[1]、a2…3=[2,0] 和 a1…3=[1,2,0]。
请计算数组 a 中好子数组的个数。
输入格式
The first line contains one integer t (1≤t≤1000) — the number of test cases.
The first line of each test case contains one integer n (1≤n≤105) — the length of the array a.
The second line of each test case contains a string consisting of n decimal digits, where the i-th digit is equal to the value of ai.
It is guaranteed that the sum of n over all test cases does not exceed 105.
第一行包含一个整数 t(1≤t≤1000)—— 测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤105)—— 数组 a 的长度。
每个测试用例的第二行包含一个由 n 个十进制数字组成的字符串,其中第 i 个数字等于 ai 的值。
保证所有测试用例的 n 之和不超过 105。
输出格式
For each test case print one integer — the number of good subarrays of the array a.
对于每个测试用例,输出一个整数——数组 a 中“好”子数组的个数。
输入输出样例
输入#1
3 3 120 5 11011 6 600005
输出#1
3 6 1
说明/提示
The first test case is considered in the statement.
In the second test case, there are 6 good subarrays: a1…1, a2…2, a1…2, a4…4, a5…5 and a4…5.
In the third test case there is only one good subarray: a2…6.
题目陈述中已考虑第一个测试用例。
在第二个测试用例中,共有 6 个好子数组:a1…1、a2…2、a1…2、a4…4、a5…5 和 a4…5。
在第三个测试用例中,仅有一个好子数组:a2…6。
输入解题思路,AI测评打分。不知道怎么写?