传统题 1000ms 256MiB

成对亮灯

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

活动现场有 nn 盏灯,它们的初始状态由一个长度为 nn 的二进制字符串 ss 表示:

  • si=0s_i=0 表示第 ii 盏灯熄灭;
  • si=1s_i=1 表示第 ii 盏灯点亮。

每次操作,你可以选择任意两盏不同的灯,同时翻转它们的状态:点亮的灯变为熄灭,熄灭的灯变为点亮。

你希望最终所有灯都处于点亮状态。请输出最少需要进行的操作次数。如果无法实现,输出 −1-1。

你可以进行零次操作。

输入格式

第一行包含一个整数 tt (1≤t≤1041\le t\le10^4),表示测试用例的数量。

对于每个测试用例:

  • 第一行包含一个整数 nn (1≤n≤2×1051\le n\le2\times10^5),表示灯的数量;
  • 第二行包含一个长度恰好为 nn 的二进制字符串 ss (∀si∈{0,1}\forall s_i\in\{0,1\}),表示灯的初始状态。

数据保证所有测试用例的 nn 之和不超过 2×1052\times10^5。

输出格式

对于每个测试用例,输出一行一个整数,表示使所有灯点亮所需的最少操作次数。如果无法实现,输出 −1-1。

6
5
10101
6
010010
4
1111
3
010
3
000
1
0
1
2
0
1
-1
-1

样例解释

第一组测试用例中,选择第 22 盏和第 44 盏灯进行一次操作,就可以使所有灯点亮。

第二组测试用例中,可以先选择第 11 盏和第 33 盏灯,再选择第 44 盏和第 66 盏灯,共进行两次操作。

第三组测试用例中,所有灯已经点亮,无需操作。

第四组测试用例中,选择第 11 盏和第 33 盏灯进行一次操作,就可以使所有灯点亮。选中的两盏灯不必相邻。

第六组测试用例中,只有一盏灯,无法选择两盏不同的灯进行操作。

CWNU算协挑战赛 Round 2

未参加
状态
已结束
规则
XCPC
题目
7
开始于
2026-10-11 19:00
结束于
2026-10-11 21:30
持续时间
2.5 小时
主持人
参赛人数
38