计算使两排石头每列颜色相同的最少交换次数

qe493091 程序题 共 个子题

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

示例说明

例如 n = 3 时:

  • 第一排石头颜色:黄、绿、绿(对应数组[1, 0, 0])
  • 第二排石头颜色:绿、绿、黄(对应数组[0, 0, 1])

最少交换次数为2次,一种可行方案如下:

  1. 先交换第一排第3颗石头与第二排第3颗石头;
  2. 再交换第一排第3颗石头与第二排第1颗石头,最终每列颜色均相同。

输入格式

本题包含多组测试数据:

  1. 第一行输入整数 T(1 ≤ T ≤ 300),表示测试数据组数。
  2. 每组数据格式如下:
    • 第一行输入整数 n(1 ≤ n ≤ 10^4),表示每排石头的数量。
    • 第二行输入 n 个0/1整数,用空格分隔,表示第一排从左到右的石头颜色(1代表黄色,0代表绿色)。
    • 第三行输入 n 个0/1整数,用空格分隔,表示第二排从左到右的石头颜色。

输入样例

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

输出样例

2
-1

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧