AT_arc193_d.[ARC193D] Magnets
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个仅由 0 和 1 组成的长度为 N 的字符串 A=A1A2…AN 和 B=B1B2…BN。
有 N 个单元格从左到右排成一列。对于 i=1,2,…,N,左数第 i 个单元格称为单元格 i。初始时,若 $A_i = $ 1,则单元格 i 放置 1 个棋子;若 $A_i = $ 0,则单元格 i 没有棋子。
你可以进行任意次数(包括 0 次)的以下操作:
- 首先选择整数 i(1≤i≤N)。
- 然后,将所有棋子同时向单元格 i 靠近的方向移动 1 个单元格。具体规则如下:设某个棋子移动前的位置为单元格 j,移动后的位置为单元格 j′,
- 若 i<j,则 j′=j−1;
- 若 i>j,则 j′=j+1;
- 若 i=j,则 j′=j。
请判断是否可以通过上述操作使网格满足以下条件,若可能,还需输出达成该条件所需的最小操作次数:
对于所有 i=1,2,…,N,当且仅当 $B_i = $
1时,单元格 i 中存在至少 1 个棋子。
给定 T 个独立的测试用例,请分别输出每个用例的答案。
输入格式
输入通过标准输入给出,格式如下:
T
case1
case2
⋮
caseT
其中,casei 表示第 i 个测试用例。每个测试用例的格式为:
N A B
输出格式
输出 T 行。对于第 i 个测试用例:
- 若无法满足条件,输出
-1; - 若可以满足条件,输出所需的最小操作次数。
输入输出样例
输入#1
3 8 01001101 00001011 3 010 111 20 10100011011110101011 00010001111101100000
输出#1
3 -1 5
说明/提示
约束条件
- 1≤T≤2×105
- 1≤N≤106
- T,N 为整数
- A,B 均为仅由
0和1组成的长度为 N 的字符串 - 存在至少一个 i 满足 $A_i = $
1 - 存在至少一个 i 满足 $B_i = $
1 - 所有测试用例的 N 之和不超过 106
样例解释 1
输入包含 3 个独立测试用例。对于第 1 个测试用例:
- 初始棋子分布为 (0,1,0,0,1,1,0,1)
- 通过以下 3 次操作可达成目标:
- 选择 i=5,分布变为 (0,0,1,0,2,0,1,0)
- 选择 i=8,分布变为 (0,0,0,1,0,2,0,1)
- 选择 i=8,分布变为 (0,0,0,0,1,0,2,1)
- 无法在少于 3 次操作内达成目标,因此输出 3
对于第 2 个测试用例,无论如何操作都无法满足条件,因此输出 -1。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?