AT_agc074_d.[AGC074D] Valid Output for DSU Problems

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

若能够通过以下操作得到序列 AA,则称其为特殊序列:

  • 准备一个包含 NN 个点、00 条边的无向图,以及长度为 00 的序列 AA。
  • 准备针对满足 1≤i<j≤N1 \leq i < j \leq N 的整数 i,ji,j 和 q∈{1,2}q \in \{1,2\} 的若干操作:
    • 当 q=1q=1 时,在点 ii 和点 jj 之间连一条边。
    • 当 q=2q=2 时,若点 ii 和点 jj 是连通的,则在 AA 末尾追加 11,否则追加 00。
  • N(N−1)N(N-1) 个可能的操作可以任意排列顺序,并按顺序依次处理。

现给定一个长度为 N(N−1)2\frac{N(N-1)}{2} 仅包含 00 和 11 的序列 BB,你可以对 BB 执行如下操作任意多次:

  • 选择一个满足 1≤i≤N(N−1)2−11 \leq i \leq \frac{N(N-1)}{2}-1 的整数 ii,交换 BiB_i 和 Bi+1B_{i+1}。

请判断能否通过若干次操作使 BB 变为一个特殊序列。如果可以,输出所需操作的最小次数;否则输出 −1-1。

对每个输入的测试用例,求解上述问题。

输入格式

从标准输入读入,格式如下:

TT case1case_1 case2case_2 …… caseTcase_T

每个测试用例格式如下:

NN B1B_1 B2B_2 …… BN(N−1)2B_{\frac{N(N-1)}{2}}

输出格式

共输出 TT 行。第 tt 行输出 BB 变为特殊序列所需的最小操作次数;如果无法做到,输出 −1-1。

输入输出样例

  • 输入#1

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

    输出#1

    1
    0
    0
    3

说明/提示

样例解释 1

在第一个测试用例中,若按顺序处理操作 (q,i,j)=(1,1,4), (2,1,4), (1,2,4), (2,1,2), (1,1,2), (2,2,3), (2,2,4), (2,3,4), (1,3,4), (1,1,3), (2,1,3), (1,2,3)(q,i,j)=(1,1,4),\ (2,1,4),\ (1,2,4),\ (2,1,2),\ (1,1,2),\ (2,2,3),\ (2,2,4),\ (2,3,4),\ (1,3,4),\ (1,1,3),\ (2,1,3),\ (1,2,3),最终得到的序列为 (1,1,0,1,0,1)(1,1,0,1,0,1),而 BB 经过一次操作可以变为该序列。此外,(1,1,0,1,1,0)(1,1,0,1,1,0) 不是特殊序列,所以答案为 11。

数据范围

  • 1≤T1 \leq T
  • 2≤N≤5002 \leq N \leq 500
  • ∣B∣=N(N−1)2|B| =\frac{N(N-1)}{2}
  • 0≤Bi≤10 \leq B_i \leq 1
  • 所有测试用例中 ∣B∣|B| 的和不超过 3×1053 \times 10^5。
  • 所有测试用例中 N3N^3 的和不超过 5003500^3。
  • 输入均为整数。

由 ChatGPT 5 翻译

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

首页