CF1988B.Make Majority

入门

通过率:0%

AC君温馨提醒

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

题目描述

给定一个序列 [a1,…,an][a_1,\ldots,a_n],其中每个元素 aia_i 只能是 00 或 11。你可以对该序列进行若干次(也可以不进行)操作。每次操作,你可以选择两个整数 1≤l≤r≤∣a∣1\le l\le r\le |a|(其中 ∣a∣|a| 表示当前序列 aa 的长度),并将 [al,…,ar][a_l,\ldots,a_r] 替换为一个元素 xx,其中 xx 是 [al,…,ar][a_l,\ldots,a_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=1,r=2l=1,r=2,操作后序列变为 [0,0,0,1,1][0,0,0,1,1]。如果选择 l=4,r=6l=4,r=6,操作后序列变为 [1,0,0,1][1,0,0,1]。

请判断是否可以通过有限次操作将 aa 变为 [1][1]。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt(1≤t≤4⋅1041 \le t \le 4\cdot 10^4),表示测试数据组数。

每组测试数据的第一行包含一个整数 nn(1≤n≤2⋅1051\le n\le 2\cdot 10^5)。

每组测试数据的第二行包含一个仅由 00 和 11 组成的字符串,表示序列 aa。

保证所有测试数据中 nn 的总和不超过 2⋅1052\cdot 10^5。

输出格式

对于每组测试数据,如果可以通过若干次操作将 aa 变为 [1][1],输出 YES,否则输出 NO。输出不区分大小写,例如 yEs、yes、Yes、YES 都视为肯定回答。

输入输出样例

  • 输入#1

    5
    1
    0
    1
    1
    2
    01
    9
    100000001
    9
    000011000

    输出#1

    No
    Yes
    No
    Yes
    No

说明/提示

在样例的第四组测试数据中,初始序列为 a=[1,0,0,0,0,0,0,0,1]a=[1,0,0,0,0,0,0,0,1]。一种可行的操作序列如下:

  1. 选择 l=2,r=8l=2,r=8 并进行操作,此时 aa 变为 [1,0,1][1,0,1]。
  2. 选择 l=1,r=3l=1,r=3 并进行操作,此时 aa 变为 [1][1]。

由 ChatGPT 4.1 翻译

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

首页