AT_tupc2022_e.00-11 Rotation
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个只包含 0 和 1 的长度为 N 的字符串 S 和 T。记 S 的第 i 个字符为 Si。
Aoba 想通过对字符串 S 进行以下两种操作,将 S 变为 T:
- 操作 1:选择下标 i (1≤i≤N−2),使得 SiSi+1Si+2 等于 001 或 100,然后将这三个字符替换成 001 或 100(可以替换成任意一个)。
- 操作 2:选择下标 i (1≤i≤N−2),使得 SiSi+1Si+2 等于 110 或 011,然后将这三个字符替换成 110 或 011(可以替换成任意一个)。
Aoba 喜欢操作 2,但不喜欢操作 1。请问将 S 变为 T 至少需要进行多少次操作 1?如果无论进行多少次操作都无法将 S 变为 T,输出 −1。
输入格式
输入从标准输入按以下格式给出:
N
S
T
输出格式
输出一个整数,表示将 S 变为 T 所需的操作 1 的最小次数。如果无法将 S 变为 T,则输出 −1。
输入输出样例
输入#1
7 1011110 1100111
输出#1
1
输入#2
3 110 101
输出#2
-1
输入#3
26 10101000010101010101010111 01110101000111001011010100
输出#3
24
说明/提示
样例解释 1
首先,在 i=5 处进行操作 2,使 S=1011011。
接着,在 i=3 处进行操作 2,使 S=1001111。
最后,在 i=2 处进行操作 1,使 S=1100111。
这样最终 S 就被变换成了 T。为了完成这个过程,最少需要进行 1 次操作 1,所以答案为 1。
样例解释 2
无法将 S 变为 T。
数据范围
- 3≤N≤3×105
- N 是整数
- S 和 T 是长度为 N 只包含 0 和 1 的字符串
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?