CF1398C.Good Subarrays

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array a1,a2,…,ana_1, a_2, \dots , a_n consisting of integers from 00 to 99. A subarray al,al+1,al+2,…,ar−1,ara_l, a_{l+1}, a_{l+2}, \dots , a_{r-1}, a_r is good if the sum of elements of this subarray is equal to the length of this subarray (∑i=lrai=r−l+1\sum\limits_{i=l}^{r} a_i = r - l + 1).

For example, if a=[1,2,0]a = [1, 2, 0], then there are 33 good subarrays: a1…1=[1],a2…3=[2,0]a_{1 \dots 1} = [1], a_{2 \dots 3} = [2, 0] and a1…3=[1,2,0]a_{1 \dots 3} = [1, 2, 0].

Calculate the number of good subarrays of the array aa.

给你一个由 00 到 99 的整数组成的数组 a1,a2,…,ana_1, a_2, \dots , a_n。若子数组 al,al+1,al+2,…,ar−1,ara_l, a_{l+1}, a_{l+2}, \dots , a_{r-1}, a_r 的元素之和等于该子数组的长度,则称其为好子数组(即 ∑i=lrai=r−l+1\sum\limits_{i=l}^{r} a_i = r - l + 1)。

例如,若 a=[1,2,0]a = [1, 2, 0],则共有 33 个好子数组:a1…1=[1]a_{1 \dots 1} = [1]、a2…3=[2,0]a_{2 \dots 3} = [2, 0] 和 a1…3=[1,2,0]a_{1 \dots 3} = [1, 2, 0]。

请计算数组 aa 中好子数组的个数。

输入格式

The first line contains one integer tt (1≤t≤10001 \le t \le 1000) — the number of test cases.

The first line of each test case contains one integer nn (1≤n≤1051 \le n \le 10^5) — the length of the array aa.

The second line of each test case contains a string consisting of nn decimal digits, where the ii-th digit is equal to the value of aia_i.

It is guaranteed that the sum of nn over all test cases does not exceed 10510^5.

第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000)—— 测试用例的数量。

每个测试用例的第一行包含一个整数 nn(1≤n≤1051 \le n \le 10^5)—— 数组 aa 的长度。

每个测试用例的第二行包含一个由 nn 个十进制数字组成的字符串,其中第 ii 个数字等于 aia_i 的值。

保证所有测试用例的 nn 之和不超过 10510^5。

输出格式

For each test case print one integer — the number of good subarrays of the array aa.

对于每个测试用例,输出一个整数——数组 aa 中“好”子数组的个数。

输入输出样例

  • 输入#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 66 good subarrays: a1…1a_{1 \dots 1}, a2…2a_{2 \dots 2}, a1…2a_{1 \dots 2}, a4…4a_{4 \dots 4}, a5…5a_{5 \dots 5} and a4…5a_{4 \dots 5}.

In the third test case there is only one good subarray: a2…6a_{2 \dots 6}.

题目陈述中已考虑第一个测试用例。

在第二个测试用例中,共有 66 个好子数组:a1…1a_{1 \dots 1}、a2…2a_{2 \dots 2}、a1…2a_{1 \dots 2}、a4…4a_{4 \dots 4}、a5…5a_{5 \dots 5} 和 a4…5a_{4 \dots 5}。

在第三个测试用例中,仅有一个好子数组:a2…6a_{2 \dots 6}。

输入解题思路,AI测评打分。不知道怎么写?

首页