CF1951A Dual Trigger

题目描述

[Ngọt - LẦN CUỐI (đi bên em xót xa người ơi)](https://youtu.be/kSjj0LlsqnI) ඞ 有 $n$ 盏灯,编号为 $1$ 到 $n$,排成一排,初始时全部关闭。你可以进行如下操作任意次(也可以不进行): - 选择两个当前都处于关闭状态且不相邻的灯,将它们同时打开。 请判断你能否通过若干次上述操作达到目标状态 $s$,其中 $s_i = 1$ 表示第 $i$ 盏灯是打开的,$s_i = 0$ 表示关闭。 $^\dagger$ 仅当 $i$ 和 $i+1$ 时,灯 $i$ 和灯 $i+1$ 才是相邻的,对于所有 $1 \le i < n$。注意当 $n \ne 2$ 时,灯 $n$ 和灯 $1$ 不相邻。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来是每组测试用例的描述。 每组测试用例的第一行包含一个整数 $n$($1 \le n \le 50$),表示灯的数量。 第二行包含一个长度为 $n$ 的二进制字符串 $s$,表示最终期望的灯的状态。

输出格式

对于每组测试用例,如果可以通过若干次操作达到目标状态 $s$,则输出一行 "YES";否则输出 "NO"。

说明/提示

在第一个测试用例中,操作的过程可能如下(初始时 $s$ 全为 $0$):$\mathtt{0000000000} \to \mathtt{\color{red}{1}0000000\color{red}{1}0} \to \mathtt{1\color{red}{1}00000\color{red}{1}10} \to \mathtt{110\color{red}{1}0\color{red}{1}0110}$。 在第三个测试用例中,不需要进行任何操作。 在第四个测试用例中,无法进行任何操作,但需要第一盏灯是打开的,因此无法达到目标状态。 由 ChatGPT 4.1 翻译