A1764.最大价值

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

二进制字符串是一个仅由字符 0 和字符 1 组成的字符串。

对于一个包含 xx 个字符 0 和 yy 个字符 1 的 ss 的非空子串,将其价值定义为:

  • 如果 x>0x > 0 并且 y>0y > 0,value=x∗yvalue = x * y。
  • 如果 x>0x > 0 并且 y=0y = 0,value=x∗xvalue = x * x。
  • 如果 x=0x = 0 并且 y>0y > 0,value=y∗yvalue = y * y。

给定长度为 nn 的二进制字符串 ss,求出其所有非空子串中的最大价值。

输入格式

每个测试由多个测试用例组成。

第一行包含一个整数 TT (1≤T≤1001 \le T \le 100) — 测试用例的数量。

每个测试用例的第一行包含一个整数 nn (1≤n≤1×1051 \le n \le 1 \times 10^5) — 表示字符串的长度.

每个测试用例的第二行包含一个长度为 nn 的二进制字符串ss。

输出格式

对于每个测试用例,打印一个整数——表示 ss 所有非空子串中的最大价值。

输入输出样例

  • 输入#1

    6
    5
    11100
    7
    1100110
    6
    011110
    7
    1001010
    4
    1000
    1
    0

    输出#1

    9
    12
    16
    12
    9
    1

说明/提示

在第一个测试用例中,我们可以取一个子串 111。 它包含 33 个字符 1 和 00 个字符 0。所以最大价值为 99。

在第二个测试用例中,我们可以取整个字符串。 它包含 44 个字符 1 和 33 个字符 0。所以最大价值为 1212。

在第三个测试用例中,我们可以取一个子串 1111。它的最大价值为 1616。

在第四个测试用例中,我们可以取整个字符串,它的最大价值为 1212。

在第五个测试用例中,我们可以取一个子串 000。它的最大价值为 99。

第六个测试用例,我们只能取子串 0 。它的最大价值为 11。

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

首页