【暑期每日一题】洛谷 P8301 [CoE R4 A/Stoi2041] 娘子

题目链接: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;
} 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值