一、题目
1、题目描述
2、输入输出
2.1输入
2.2输出
3、原题链接
1615C - Menorah
二、解题报告
1、思路分析
- 两次连续操作相当于交换两位
- 奇数次操作, 改变了01频数
- 01频数是否能一样
- -> -1
- 否则就是调整到该在的位置的最小操作次数
- 不一样的位置一定是偶数个,否则01频数不相等
- 那么答案就是不一样的位置个数
2、复杂度
时间复杂度: O(N)空间复杂度:O(N)
3、代码详解
T = int(input())ans = []
for _ in range(T):N = int(input())a = input()b = input()ca, cb = a.count('1'), b.count('1')res = -1if ca == cb:res = 0for i in range(N):res += (a[i] != b[i])if N - ca + 1 == cb:t = 0f = Falsefor i in range(N):t += (a[i] == b[i])f = f or (a[i] == '1')if f:res = min(res, t) if ~res else tans.append(res)print('\n'.join(map(str, ans)))