翻译
查看原帖
翻译
1288523
Julien_de_Bradbury楼主2024/7/19 08:41

题目描述

你有一个长度为 nn 的数组 aa,其中每个元素都为 00 或 11 。你可以对这个序列执行几次操作(可以不操作)。在每次操作中,选择两个整数 1≤l≤r≤n1 ≤ l ≤ r ≤ n,并用 [l,r][l,r] 的“多数”替换该区间。

对区间的“多数”定义如下:

设该区间中有 c0c_0 个 00,c1c_1 个 11。

  • 如果 c0≥c1c_0 \ge c_1,则“多数”为 00。

  • 如果 c0<c1c_0 < c_1,则“多数”为 11。

例如,设 a=[1, 0, 0, 0, 1, 1]a = [1,\,0,\,0,\,0,\,1,\,1],如果 l=1l = 1,r=2r = 2,序列将变为 [0, 0, 0, 1, 1][0,\,0,\,0,\,1,\,1]。如果 l=4l = 4,r=6r = 6,序列将变为 [1, 0, 0, 1][1,\,0,\,0,\,1]。

你能否用有限的操作使 a=[1]a = [1]?

输入格式

每个测试点包含多个测试样例。

第一行为包含测试样例的数量 tt;

每个测试样例的第一行包含一个整数 nn;

第二行为一个由 00 和 11 组成的字符串,描述序列 aa。

输出格式

如果可以用有限的操作使 a=[1]a = [1],输出 YES ,否则输出 NO 。

你可以以任何大写或小写的形式输出答案。例如,字符串 yEs,yes,Yes 和 YES 都将被视为肯定的回答。

说明/提示

在第四个测试样例中,最初 a=[1, 0, 0, 0, 0, 0, 0, 0, 1]a=[1,\,0,\,0,\,0,\,0,\,0,\,0,\,0,\,1] 一个有效的操作序列是:

  • 选择 l=2l = 2,r=8r = 8 并执行操作,使 a=[1,0, 1]a = [1,0,\,1]。

  • 选择 l=1l = 1,r=3r = 3 并执行操作,使 a=[1]a = [1]。

数据范围

1≤t≤4×1041 ≤ t ≤ 4 \times 10^4

∑n≤2×105\sum n ≤ 2 \times 10^5

2024/7/19 08:41
加载中...