P16151 [ICPC 2017 NAIPC] Yin and Yang StonesLink: https://www.luogu.com.cn/problem/P16151题目描述一个由黑石和白石组成的环形神秘图案出现了。Ming 的任务是通过操作使石子达到平衡最终只剩下一个黑石和一个白石。Ming 有两种平衡操作选取一段连续的石头其中黑石的数量恰好比白石的数量多 1并将这一段替换为一个黑石。选取一段连续的石头其中白石的数量恰好比黑石的数量多 1并将这一段替换为一个白石。给定一个环形排列请判断 Ming 是否能通过上述操作使石子达到平衡。输入格式每个输入包含单个测试用例。请注意你的程序可能会在不同输入上多次运行。输入仅包含一个字符串s ss1 ≤ ∣ s ∣ ≤ 10 5 1 \leq |s| \leq 10^51≤∣s∣≤105仅由大写字母 ‘B’ 和 ‘W’ 组成。石子呈环形排列因此第一个石子和最后一个石子相邻。输出格式如果 Ming 能通过他的操作使石子达到平衡则输出 1否则输出 0。输入输出样例 #1输入 #1WWBWBB输出 #11输入输出样例 #2输入 #2WWWWBBW输出 #20输入输出样例 #3输入 #3WBBBBBWWBW输出 #30Solution1. 题意一系列黑白棋围成一个圆圈每次操作可以选择一段黑棋比白棋多 1 个的区段将这部分替换为 1 个黑棋选择一段白棋比黑棋多 1 个的区段将这部分替换为 1 个白棋。问最后是否恰好可以剩下刚好一个黑棋和一个白棋。2. 分析看上去很唬人其实简单到爆。回顾一下题意选择一段黑棋比白棋多 1 个的区段将这部分替换为 1 个黑棋。这个操作其实相当于选择一段黑棋比白棋多 1 个的区段将这部分替换为 1 个黑棋和 0 个白棋。看到没有替换前这一段黑棋比白棋多 1替换后 1 个黑棋 0 个白棋还是黑棋比白棋多 1。另外一种操作与之同理。如此一来就会发现给定的两种操作并不能用于减少两种棋子数量上的差距。这也就意味着当且仅当最开始黑棋白棋数量相等就能平衡否则就不能平衡。3. 代码两行 Python 代码直接秒掉此题。ringinput()print(1ifring.count(W)ring.count(B)else0)