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

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

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

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

此时每一列石头的颜色都相同,故至少需要交换 2 次。
输入描述:
本题每个测试点包含多组测试数据
第一行包含一个整数 T(1≤T≤300),表示数据组数
接下来 T 组数据,每组数据第一行输入一个整数 n(1≤n≤104),表示每排石头的数量
第二行输入 n 个整数,整数只能为 1 或 0,1 表示黄色,0 表示绿色,表示第一排从左到右每颗石头的颜色,整数之间以一个空格隔开
第三行输入 n 个整数,整数只能为 1 或 0,1 表示黄色,0 表示绿色,表示第二排从左到右每颗石头的颜色,整数之间以一个空格隔开
输出描述:
输出 T 行,每行一个整数,第 i 行的整数表示输入的第 i 组数据的最少交换次数;如果该组数据无论交换多少次都无法使每一列石头的颜色都相同,则输出 -1
2
3
1 0 0
0 0 1
5
1 0 1 0 1
0 1 0 1 0
2
-1
Limitation
1s, 1024KiB for each test case.