CF1037C.Equalize
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given two binary strings a and b of the same length. You can perform the following two operations on the string a:
- Swap any two bits at indices i and j respectively (1≤i,j≤n), the cost of this operation is ∣i−j∣, that is, the absolute difference between i and j.
- Select any arbitrary index i (1≤i≤n) and flip (change 0 to 1 or 1 to 0) the bit at this index. The cost of this operation is 1.
Find the minimum cost to make the string a equal to b. It is not allowed to modify string b.
给你两个长度相同的二进制字符串 a 和 b。你可以在字符串 a 上执行以下两种操作:
- 交换任意两个位于下标 i 和 j 处的比特(1≤i,j≤n),该操作的代价为 ∣i−j∣,即 i 与 j 的绝对差值。
- 任选一个下标 i(1≤i≤n),翻转(将 0 变为 1 或将 1 变为 0)该位置上的比特。该操作的代价为 1。
求使字符串 a 变为字符串 b 所需的最小代价。不允许修改字符串 b。
输入格式
The first line contains a single integer n (1≤n≤106) — the length of the strings a and b.
The second and third lines contain strings a and b respectively.
Both strings a and b have length n and contain only '0' and '1'.
第一行包含一个整数 n(1≤n≤106)—— 字符串 a 和 b 的长度。
第二行和第三行分别包含字符串 a 和 b。
字符串 a 和 b 的长度均为 n,且仅包含字符 '0' 和 '1'。
输出格式
Output the minimum cost to make the string a equal to b.
输出使字符串 a 等于 b 的最小代价。
输入输出样例
输入#1
3 100 001
输出#1
2
输入#2
4 0101 0011
输出#2
1
说明/提示
In the first example, one of the optimal solutions is to flip index 1 and index 3, the string a changes in the following way: "100" → "000" → "001". The cost is 1+1=2.
The other optimal solution is to swap bits and indices 1 and 3, the string a changes then "100" → "001", the cost is also ∣1−3∣=2.
In the second example, the optimal solution is to swap bits at indices 2 and 3, the string a changes as "0101" → "0011". The cost is ∣2−3∣=1.
在第一个例子中,一种最优解是翻转索引 1 和索引 3,字符串 a 的变化过程如下:"100" → "000" → "001"。总代价为 1+1=2。
另一种最优解是交换索引 1 和索引 3 处的比特位,此时字符串 a 的变化为:"100" → "001",代价同样为 ∣1−3∣=2。
在第二个例子中,最优解是交换索引 2 和 3 处的比特位,字符串 a 的变化为:"0101" → "0011",代价为 ∣2−3∣=1。
输入解题思路,AI测评打分。不知道怎么写?