A1764.最大价值
入门
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
二进制字符串是一个仅由字符 0
和字符 1
组成的字符串。
对于一个包含 x 个字符 0
和 y 个字符 1
的 s 的非空子串,将其价值定义为:
- 如果 x>0 并且 y>0,value=x∗y。
- 如果 x>0 并且 y=0,value=x∗x。
- 如果 x=0 并且 y>0,value=y∗y。
给定长度为 n 的二进制字符串 s,求出其所有非空子串中的最大价值。
输入格式
每个测试由多个测试用例组成。
第一行包含一个整数 T (1≤T≤100) — 测试用例的数量。
每个测试用例的第一行包含一个整数 n (1≤n≤1×105) — 表示字符串的长度.
每个测试用例的第二行包含一个长度为 n 的二进制字符串s。
输出格式
对于每个测试用例,打印一个整数——表示 s 所有非空子串中的最大价值。
输入输出样例
输入#1
6 5 11100 7 1100110 6 011110 7 1001010 4 1000 1 0
输出#1
9 12 16 12 9 1
说明/提示
在第一个测试用例中,我们可以取一个子串 111
。 它包含 3 个字符 1
和 0 个字符 0
。所以最大价值为 9。
在第二个测试用例中,我们可以取整个字符串。 它包含 4 个字符 1
和 3 个字符 0
。所以最大价值为 12。
在第三个测试用例中,我们可以取一个子串 1111
。它的最大价值为 16。
在第四个测试用例中,我们可以取整个字符串,它的最大价值为 12。
在第五个测试用例中,我们可以取一个子串 000
。它的最大价值为 9。
第六个测试用例,我们只能取子串 0
。它的最大价值为 1。