题目描述
Neko有n个宝箱和m个钥匙,第i个箱子上写有整数ai,第j个宝箱上写有整数bj,Neko想要打开尽量多的宝箱。
第j个小时可以被用来打开第i个宝箱当且仅当ai与bj的和为奇数。一个钥匙最多仅能配对一个箱子,一个箱子最多被打开一次
请你告诉Neko他最多能打开多少个箱子。
输入&输出
第一行包括整数n和m,其中(1≤n,m≤100000)
第二行包括n个整数a1 ,a2 ,a3 ......an(1≤ai≤1000000000)
第三行包括m个整数b1 ,b2 ,b3
题解
小学生知识点:奇数+偶数=奇数
所以:找出a中奇数与b中偶数最小值,找出a中偶数与b中奇数最小值,两者相加便是答案了
愉快的水题又AC了!
代码如下:
#include <bits/stdc++.h>
using namespace std;
int n, m, a[10], b[10], tmp;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> tmp;
a[tmp % 2]++;//统计a中的奇偶数
}
for (int i = 1; i <= m; i++) {
cin >> tmp;
b[tmp % 2]++;//b的也一样写一遍
}
cout << min(b[0], a[1]) + min(a[0], b[1]);//求出值
return 0;
}