#P15257. [USACO26JAN2] Cow-libi 2 S
[USACO26JAN2] Cow-libi 2 S
说明
农夫 John 和农夫 Nhoj 带着他们各自的奶牛围坐在篝火旁,希望解决他们之间的个人分歧。总共有 ()头奶牛围成一个圆圈。当两位农夫准备将他们的奶牛带回农场时,他们意识到一个关键的错误:由于所有奶牛看起来都一样且混在一起,他们无法区分哪些奶牛属于哪位农夫!
随后,这 头奶牛被组织成一列直线,接受两位农夫的询问。由于混乱,队伍中奶牛从 到 的顺序可能并不对应它们在篝火旁的环形顺序。
但奶牛们想玩一个游戏。它们不直接回答属于哪位农夫,而是说出在原始圆圈中与自己相邻的奶牛属于哪位农夫。此外,已知农夫 Nhoj 的奶牛总是说谎,而农夫 John 的奶牛被教养得很好,总是说实话。
根据奶牛的陈述,是否可能为每头奶牛分配属于农夫 John 或农夫 Nhoj,使得分配给农夫 John 的奶牛的所有陈述都为真,而分配给农夫 Nhoj 的奶牛的所有陈述都为假?
输入格式
第一行包含 (),表示独立测试用例的数量,以及一个整数 (表示是否需要输出构造方案)。
每个测试用例的第一行包含 。
接下来一行包含一个长度为 的字符串,由字符 J 或 N 组成。第 个字符为 J,表示奶牛 声称在圆圈中其左侧的奶牛属于农夫 John;否则为 N,表示属于农夫 Nhoj。
接下来一行包含一个长度为 的字符串,由字符 J 或 N 组成。第 个字符为 J,表示奶牛 声称在圆圈中其右侧的奶牛属于农夫 John;否则为 N,表示属于农夫 Nhoj。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出 YES 或 NO。
此外,如果 且答案为 YES,则额外输出两行描述你的构造方案:
第一行应包含 的一个排列 ,表示奶牛在篝火旁的环形顺序,其中对于 从 到 ,奶牛 位于奶牛 的左侧,且奶牛 位于奶牛 的左侧。
第二行应包含一个仅由 J 和 N 组成的字符串 ,表示如果 是 J,则奶牛 属于农夫 John;否则属于农夫 Nhoj。
任何有效的构造方案都将被接受。
6 0
3
JJJ
JJJ
4
JJNJ
NJJJ
6
NJNJNJ
JNNJNJ
4
NNNN
NNNN
3
NNN
NNN
5
JJNNJ
NJNJJ
YES
NO
NO
YES
NO
YES
6 1
3
JJJ
JJJ
4
JJNJ
NJJJ
6
NJNJNJ
JNNJNJ
4
NNNN
NNNN
3
NNN
NNN
5
JJNNJ
NJNJJ
YES
1 2 3
JJJ
NO
NO
YES
1 2 3 4
NJNJ
NO
YES
4 5 2 1 3
JJJJN
提示
考虑第六个测试用例的输出。奶牛 1、2、4、5 属于农夫 John,奶牛 3 属于农夫 Nhoj。
随后奶牛们的行为如下:
- 奶牛 1 的左侧和右侧邻居分别是奶牛 2 和奶牛 3。奶牛 1 声称奶牛 2 属于农夫 John,奶牛 3 属于农夫 Nhoj。
- 奶牛 2 的左侧和右侧邻居分别是奶牛 5 和奶牛 1。奶牛 2 声称两头奶牛都属于农夫 John。
- 奶牛 3 的左侧和右侧邻居分别是奶牛 1 和奶牛 4。奶牛 3(不诚实地)声称两头奶牛都属于农夫 Nhoj。
- 奶牛 4 的左侧和右侧邻居分别是奶牛 3 和奶牛 5。奶牛 4 声称奶牛 3 属于农夫 Nhoj,奶牛 5 属于农夫 John。
- 奶牛 5 的左侧和右侧邻居分别是奶牛 4 和奶牛 2。奶牛 5 声称两头奶牛都属于农夫 John。
所有这些声明都与输入一致。
评分
- 输入 3: 且
- 输入 4: 且
- 输入 5-8:
- 输入 9-12:
翻译由 DeepSeek 完成
京公网安备 11011102002149号