CF1760E.Binary Inversions

普及-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given a binary array†^{\dagger} of length nn. You are allowed to perform one operation on it at most once. In an operation, you can choose any element and flip it: turn a 00 into a 11 or vice-versa.

What is the maximum number of inversions‡^{\ddagger} the array can have after performing at most one operation?

†^\dagger A binary array is an array that contains only zeroes and ones.

‡^\ddagger The number of inversions in an array is the number of pairs of indices i,ji,j such that i<ji \lt j and ai>aja_i \gt a_j.

给你一个长度为 nn 的二进制数组†^{\dagger}。你最多可以对其执行一次操作。在一次操作中,你可以任选一个元素并将其翻转:即把 00 变为 11,或把 11 变为 00。

在最多执行一次操作后,该数组最多能有多少个逆序对‡^{\ddagger}?

†^\dagger 二进制数组是指仅包含 00 和 11 的数组。

‡^\ddagger 数组中的逆序对数量,是指满足 i<ji \lt j 且 ai>aja_i \gt a_j 的下标对 (i,j)(i,j) 的个数。

输入格式

The input consists of multiple test cases. The first line contains an integer tt (1≤t≤1041 \leq t \leq 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains an integer nn (1≤n≤2⋅1051 \leq n \leq 2\cdot10^5) — the length of the array.

The following line contains nn space-separated positive integers a1a_1, a2a_2,..., ana_n (0≤ai≤10 \leq a_i \leq 1) — the elements of the array.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052\cdot10^5.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2\cdot10^5),表示数组的长度。

接下来的一行包含 nn 个用空格分隔的正整数 a1a_1, a2a_2, ..., ana_n(0≤ai≤10 \leq a_i \leq 1),即数组的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052\cdot10^5。

输出格式

For each test case, output a single integer — the maximum number of inversions the array can have after performing at most one operation.

对于每个测试用例,输出一个整数——在最多执行一次操作后,数组可能具有的最大逆序对数量。

输入输出样例

  • 输入#1

    5
    4
    1 0 1 0
    6
    0 1 0 0 1 0
    2
    0 0
    8
    1 0 1 1 0 0 0 1
    3
    1 1 1

    输出#1

    3
    7
    1
    13
    2

说明/提示

For the first test case, the inversions are initially formed by the pairs of indices (1,21, 2), (1,41, 4), (3,43, 4), being a total of 33, which already is the maximum possible.

For the second test case, the inversions are initially formed by the pairs of indices (2,32, 3), (2,42, 4), (2,62, 6), (5,65, 6), being a total of four. But, by flipping the first element, the array becomes 1,1,0,0,1,0{1, 1, 0, 0, 1, 0}, which has the inversions formed by the pairs of indices (1,31, 3), (1,41, 4), (1,61, 6), (2,32, 3), (2,42, 4), (2,62, 6), (5,65, 6) which total to 77 inversions which is the maximum possible.

对于第一个测试用例,初始的逆序对由索引对 (1,2)(1, 2)、(1,4)(1, 4)、(3,4)(3, 4) 构成,共 33 个,这已达到可能的最大值。

对于第二个测试用例,初始的逆序对由索引对 (2,3)(2, 3)、(2,4)(2, 4)、(2,6)(2, 6)、(5,6)(5, 6) 构成,共 44 个。但若翻转第一个元素,则数组变为 1,1,0,0,1,0{1, 1, 0, 0, 1, 0},此时逆序对由索引对 (1,3)(1, 3)、(1,4)(1, 4)、(1,6)(1, 6)、(2,3)(2, 3)、(2,4)(2, 4)、(2,6)(2, 6)、(5,6)(5, 6) 构成,总计 77 个逆序对,这是可能的最大值。

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

首页