CF1988B.Make Majority
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个序列 [a1,…,an],其中每个元素 ai 只能是 0 或 1。你可以对该序列进行若干次(也可以不进行)操作。每次操作,你可以选择两个整数 1≤l≤r≤∣a∣(其中 ∣a∣ 表示当前序列 a 的长度),并将 [al,…,ar] 替换为一个元素 x,其中 x 是 [al,…,ar] 的“多数元素”。
这里,“多数元素”定义如下:假设该区间内有 c0 个 0 和 c1 个 1。
- 如果 c0≥c1,多数元素为 0。
- 如果 c0<c1,多数元素为 1。
例如,假设 a=[1,0,0,0,1,1]。如果选择 l=1,r=2,操作后序列变为 [0,0,0,1,1]。如果选择 l=4,r=6,操作后序列变为 [1,0,0,1]。
请判断是否可以通过有限次操作将 a 变为 [1]。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 t(1≤t≤4⋅104),表示测试数据组数。
每组测试数据的第一行包含一个整数 n(1≤n≤2⋅105)。
每组测试数据的第二行包含一个仅由 0 和 1 组成的字符串,表示序列 a。
保证所有测试数据中 n 的总和不超过 2⋅105。
输出格式
对于每组测试数据,如果可以通过若干次操作将 a 变为 [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]。一种可行的操作序列如下:
- 选择 l=2,r=8 并进行操作,此时 a 变为 [1,0,1]。
- 选择 l=1,r=3 并进行操作,此时 a 变为 [1]。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?