#P2732. 第3题-小美字符串

第3题-小美字符串

题目内容

对于一个字符串,小美每次操作可以:添加或者删除一个00字符或者11

她定义一个字符串tt的权值为:

满足任意次交换两个相邻字符的前提下使得任意相邻的两个字符都不相等的最少操作次数。

例如:对于t=011t=011,其权值为11

可以选择在1111之间添加00变成01010101

也可以选择删除11变成0101

给你一个长度为nn的字符串ss,仅包含"010、1",请你帮助小美求出非空子串的权值之和。

子串:是指一个字符串中的连续部分。

输入描述

第一行一个整数t(1110)t(1≤1≤10),表示数据组数。

对于每一组数据格式为:

第一行一个整数n(1n2×105)n(1≤n≤2×10^5),表示字符串长度。

第二行第一个长度为n的字符串ss,输入保证仅含"010、1".

单个测试文件数据保证n2×105\sum n ≤2×10^5

输出描述

对于每一组数据:

每行输出一个整数,表示给定字符串的所有非空子串的权值之和。

样例1

输入

2
3
011
4
1111

输出

1
10

说明

对于第二个样例ss="11111111": 长度为11的子串[1,1,1,1][1,1,1,1]均不需要操作。 长度为22的子串[11,11,11][11,11,11]均需要操作一次,使得 1110111→101。 长度为33的子串[111,111][111,111]均需要操作两次,使得 11110101111→10101。 长度为4的子串[1111][1111]需要操作三次,使得 111110101011111→1010101

共累计3×1+2×2+1×3=103×1+2×2+1×3=10