3780 . 编程题 Puls

交换颜色石头

题目描述

有两排石头,每排n颗,从左到右依次排开,每颗石头的颜色为黄色或者绿色。每次可以选择第一排的任意一颗石头与第二排的任意一颗石头交换位置。请计算最少需要交换多少次才能使每一列石头的颜色都相同;如果无论交换多少次都无法使每一列石头的颜色都相同,则输出-1;

例如:n=3,每排3颗石头; 第一排3颗石头的颜色从左到右依次是黄、绿、绿: image

第二排3颗石头的颜色从左到右依次是绿、绿、黄: image

其中一种最少交换次数的方案如下: 1、先将第一排的第 3 颗石头与第二排的第 3 颗石头交换位置; image

2、再将第一排的第 3 颗石头与第二排的第1颗石头交换位置。 image

此时每一列石头的颜色都相同,故至少需要交换2次。

输入格式

本题每个测试点包含多组测试数据第一行包含一个整数 T(1 ≤ T ≤ 300),表示数据组数接下来 T 组数据,每组数据第一行输入一个整数$n(1 ≤ n ≤ 10^4) $,表示每排石头的数量。

第二行输入 n个整数,整数只能为1或 0,1表示黄色,0 表示绿色,表示第一排从左到右每颗石头的颜色,整数之间以一个空格隔开。

第三行输入 n个整数,整数只能为1或0,1表示黄色,0表示绿色,表示第二排从左到右每颗石头的颜色,整数之间以一个空格隔开。

输入样例:

2
3
1 0 0
0 0 1
5
1 0 1 0 1
0 1 0 1 0

输出样例:

2
-1
上一题:曼哈顿距离
下一题:快速分解质因数
土豆
简单
0
收藏
题解讨论
反馈