AT_arc193_d.[ARC193D] Magnets

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个仅由 0 和 1 组成的长度为 NN 的字符串 A=A1A2…ANA = A_1A_2\ldots A_N 和 B=B1B2…BNB = B_1B_2\ldots B_N。

有 NN 个单元格从左到右排成一列。对于 i=1,2,…,Ni = 1, 2, \ldots, N,左数第 ii 个单元格称为单元格 ii。初始时,若 $A_i = $ 1,则单元格 ii 放置 11 个棋子;若 $A_i = $ 0,则单元格 ii 没有棋子。

你可以进行任意次数(包括 00 次)的以下操作:

  1. 首先选择整数 ii(1≤i≤N1 \leq i \leq N)。
  2. 然后,将所有棋子同时向单元格 ii 靠近的方向移动 11 个单元格。具体规则如下:设某个棋子移动前的位置为单元格 jj,移动后的位置为单元格 j′j',
    • 若 i<ji < j,则 j′=j−1j' = j - 1;
    • 若 i>ji > j,则 j′=j+1j' = j + 1;
    • 若 i=ji = j,则 j′=jj' = j。

请判断是否可以通过上述操作使网格满足以下条件,若可能,还需输出达成该条件所需的最小操作次数:

对于所有 i=1,2,…,Ni = 1, 2, \ldots, N,当且仅当 $B_i = $ 1 时,单元格 ii 中存在至少 11 个棋子。

给定 TT 个独立的测试用例,请分别输出每个用例的答案。

输入格式

输入通过标准输入给出,格式如下:

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
⋮\vdots
caseT\mathrm{case}_T

其中,casei\mathrm{case}_i 表示第 ii 个测试用例。每个测试用例的格式为:

NN AA BB

输出格式

输出 TT 行。对于第 ii 个测试用例:

  • 若无法满足条件,输出 -1;
  • 若可以满足条件,输出所需的最小操作次数。

输入输出样例

  • 输入#1

    3
    8
    01001101
    00001011
    3
    010
    111
    20
    10100011011110101011
    00010001111101100000

    输出#1

    3
    -1
    5

说明/提示

约束条件

  • 1≤T≤2×1051 \leq T \leq 2 \times 10^5
  • 1≤N≤1061 \leq N \leq 10^6
  • T,NT, N 为整数
  • A,BA, B 均为仅由 0 和 1 组成的长度为 NN 的字符串
  • 存在至少一个 ii 满足 $A_i = $ 1
  • 存在至少一个 ii 满足 $B_i = $ 1
  • 所有测试用例的 NN 之和不超过 10610^6

样例解释 1

输入包含 33 个独立测试用例。对于第 11 个测试用例:

  • 初始棋子分布为 (0,1,0,0,1,1,0,1)(0, 1, 0, 0, 1, 1, 0, 1)
  • 通过以下 33 次操作可达成目标:
    1. 选择 i=5i = 5,分布变为 (0,0,1,0,2,0,1,0)(0, 0, 1, 0, 2, 0, 1, 0)
    2. 选择 i=8i = 8,分布变为 (0,0,0,1,0,2,0,1)(0, 0, 0, 1, 0, 2, 0, 1)
    3. 选择 i=8i = 8,分布变为 (0,0,0,0,1,0,2,1)(0, 0, 0, 0, 1, 0, 2, 1)
  • 无法在少于 33 次操作内达成目标,因此输出 33

对于第 22 个测试用例,无论如何操作都无法满足条件,因此输出 -1。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页