B. Replacement (python解)-codeforces
1.B. Alice's Adventures in Permuting (python解)-codeforces2.C. 小红打怪 (python解)-牛客
3.B. Replacement (python解)-codeforces
4.C - Sowing Stones(python解)-atcoder5.C. Alya and Permutation(python解)-codeforces6.AtCoder Beginner Contest 375 C题 (python解)7.C. Penchick and BBQ Buns (python解)-codeforces8.D - Strange Mirroring(python解)——Atcoder9.D. Sharky Surfing (python解)-codeforces10.牛客小白月赛105 (Python题解) A~EB. Replacement (python解)-codeforces
原题链接:
问题分析:
我们有两个二进制字符串:s
(长度为 n
)和 r
(长度为 n-1
)。根据游戏规则,我们需要在 s
上执行 n-1
次操作。在每次操作中,我们选择一个索引 k
,使得 s[k]
和 s[k+1]
不相同并将这两个字符替换为 r[i]
(第 i
次操作中 r
的第 i
个字符)。如果在某一步无法找到这样的 k
,我们就输掉了游戏。目标是判断是否能成功完成所有 n-1
次操作。
思路:
-
每次操作我们都需要将相邻的字符当中的一个改变为另一个字符。
在可用的情况下,我们需要检查
s
中的 0 和 1 是否足够替换为r
中的数据。 -
由于需要找到相邻不同的字符,我们可以确保至少一个替换操作可以进行,这意味着我们需要在最终构建的
r
中的每一个字符能用s
中的 0 和 1 进行合理替换。 -
因此,我们需要在每次替换时要跟踪
1
和0
的数量,以确保我们可以在r
中按顺序找到这些字符。 -
开始时获取
s
中1
和0
的数量。 -
对于r中的每个字符,检查是否可以合法进行替换:
如果
1
的数量不足以替换r[i]
(其中r[i]
为1
),则此时需要从0
减去一个并确保1
继续存在,反之亦然。 -
如果在过程中任何时间点
1
和0
的数量不足以保证替换,则最终输出NO
。 -
如果所有替换都能成功,输出
YES
。
代码:
for _ in range(int(input())):
n = int(input())
s = input()
one = s.count("1")
zero = s.count("0")
ans = "YES"
for ti in input():
if one == 0 or zero == 0:
ans = "NO"
break
one -= 1
zero -= 1
if ti == "1":
one += 1
else:
zero += 1
print(ans)
标签:
codeforces
, Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异