题目链接:P8301 [CoE R4 A/Stoi2041] 娘子 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目背景
【经典】周杰伦全MV 【196P】_哔哩哔哩_bilibili
题目描述
给定两个长度均为 n 的 0,1 序列 a,b,首先,你可以选择一些 ai 取反,即 0 变为 1,1 变为 0,然后,任意排列序列 a。
要求上述过程结束后 ai 等于 bi,求取反的最少次数。
输入格式
第一行一个正整数 n。第二行 n 个数字表示序列 a。第三行 n 个数字表示序列 b。
输出格式
一个整数表示答案。
样例 #1
样例输入 #1
3
110
101
样例输出 #1
0
样例 #2
样例输入 #2
5
10010
00100
样例输出 #2
1
提示
样例解释
输入 #1:将 a = 110 重排为 a = 101 即可达到题目要求,故取反的最少次数为 0。
输入 #2:将 a = 10010 的第四位取反(从左往右计数),得 a=10000,然后再重排得到 a=00100 即可达到题目要求,故取反的最少次数为 1。
数据规模
- 对于 10% 的数据,n = 1;
- 对于另外 20% 的数据,bi = 0;
- 对于另外 20% 的数据,bi = 1;
- 对于 100% 的数据,1 <= n <= 10^3,ai ∈ {0, 1},bi ∈ {0, 1}。
AC code:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
int cnt1=0,cnt2=0;
string a,b;
cin>>a>>b;
for(auto i:a)
{
if(i=='1')
cnt1++;
}
for(auto i:b)
{
if(i=='1')
cnt2++;
}
cout<<abs(cnt1-cnt2);
return 0;
}