#665. 兔子
兔子
题目描述
你有 个花盆从左到右排成一行并编号为 到 。有些花盆里有花(用字符 表示),有些是空的(用字符 表示)。用二进制字符串 描述这些花盆的情况:当 时第 个花盆有花,当 时第 个花盆为空。你还有一些兔子,想和花一起拍一张好看的合影。你想在每个空花盆()里放一只兔子,并且每只兔子可以选择面向左或面向右。
不幸的是,这些兔子很淘气,可能会跳动,从而破坏照片。每只兔子会准备跳向其面向方向的下一个花盆,但在以下两种情况下不会跳:
- 目标格子里已经有兔子,
- 有另一只兔子也准备从相反方向跳入同一个格子(即两只兔子同时准备跳入同一格子)。
另外,兔子不会跳出边界(位于格子 且面向左的兔子不会跳出界外,位于格子 且面向右的兔子也不会跳出界外)。
你的目标是为每只兔子选择一个朝向,使得没有任何兔子会跳,从而你可以慢慢拍照。判断是否存在这样的朝向安排使得所有兔子都永远不跳。
输入格式
第一行包含一个整数 ()——测试用例数。随后是 个测试用例。
每个测试用例包含两行:
- 第一行包含一个整数 ();
- 第二行包含一个长度为 的二进制字符串 ,表示花盆的状态()。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果存在一种兔子朝向的布置使得没有兔子会跳,则输出 YES,否则输出 NO。大小写不限。
样例输入
12
4
0100
3
000
8
11011011
5
00100
1
1
5
01011
2
01
7
0101011
7
1101010
5
11001
4
1101
9
001101100
样例输出
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
NO
NO
说明
样例 1 解释
一种合法的布置是:位置 的兔子朝右,位置 的兔子朝左,位置 的兔子朝左。可以验证没有兔子会跳。
样例 2 解释
一种合法的布置是:位置 朝左,位置 朝右,位置 朝左,同样没有兔子会跳。
样例 3 解释
无任何合法布置。