电脑
题目描述:
兔警官朱迪的办公室有一台老式电脑,上面布满了灰尘。朱迪清理过后,准备用它来办公。发现这台电脑的键盘上面只有两个字母按键可以正常使用,即字母 'Z' 和 'O'。
朱迪想打出她最喜欢的字符串 $S$。该字符串由%n%个字母组成,每个字母是 'Z' 或 'O'。然而,她的电脑中了病毒。字母 'Z' 可以正常使用,但当她每次尝试打出字母 'O' 时,她之前打出的所有字母都会翻转,从 'Z' 变成 'O' 或从 'O' 变成 'Z',然后 'O' 才出现。
迪有可能打出她最喜欢的字符串吗?
调皮的狐狸尼克给朱迪一个参数 ,其值为$0$或 $1$。
- 如果 $k=0$,那么朱迪只需要判断是否可能打出她最喜欢的字符串$S$ 。
- 如果 $k=1$,那么朱迪首先需要判断是否可能打出她最喜欢的字符串$S$ ,其次如果能打出她最喜欢的字符串,那么朱迪还需要给出一个按键序列的例子,以便她能够打出她最喜欢的字符串$S$ 。
输入格式:
第一行包含一个整数 $k$,其中 $k$表示狐狸尼克给朱迪的参数值。
第二行包含一个整数 $n$ ,表示朱迪最喜欢的字符串 $S$的长度。
第三行包含一个字符串 $S$ 。保证 $S$中除了 'Z' 和 'O' 以外不会出现其他字符。
输出格式:
当$k=0$时,输出只有一行。如果朱迪不可能打出字符串 $S$,则输出 "NO";否则,输出 "YES"。
当$k=1$时,如果朱迪不可能打出字符串 $S$,则只输出一行 "NO";否则在第一行输出 "YES",第二行输出一个长度为 $n$的字符串,表示朱迪需要按顺序打出的字母序列,以便打出她最喜欢的字符串 $S$ 。
数据范围:
对于100%的数据, $0\lek\le1; \ 1 \le n \le 2000 $
样例输入:
(双击复制)样例1: 0 3 ZOO 样例2: 0 5 OOZOO 样例3: 1 3 ZOO 样例4: 1 5 OOZOO
样例输出:
(双击复制)样例1: YES 样例2: YES 样例3: YES OZO 样例4: YES ZOOZO
提示:
【样例4解释】
当朱迪打出 ZOOZO 时,字母的变化如下:
在打出第一个 Z 之前,朱迪有一个空字符串。之后,她有了字符串 Z。
在打出第一个 O 之后,Z 翻转为 O,然后 O 被追加,形成 OO。
在打出第二个 O 之后,OO 翻转为 ZZ,然后 O 被追加,形成 ZZO。
在打出第二个 Z 之后,朱迪有了字符串 ZZOZ。
在打出最后一个 O 之后,字符串 ZZOZ 翻转为 OOZO,然后 O 被追加,形成 OOZOO,正如所愿。
时间限制: 1000ms空间限制: 256MB
来源: 26年比赛小学组t3