CF2122B.Pile Shuffling

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定 nn 个二进制堆,其中第 ii 个堆顶部有 aia_i 个 00,底部有 bib_i 个 11。

每次操作中,你可以取出任意堆的顶部元素,并将其移动到任意堆的任意位置(包括原堆)。

第一个测试样例的解法图示

上图为第一个测试样例的解法图示。

计算最少需要多少次操作,才能使第 ii 个堆形成顶部 cic_i 个 00 和底部 did_i 个 11 的目标状态。

输入格式

每个测试包含多个测试用例。第一行给出测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。随后是各测试用例描述。

每个测试用例第一行包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5),表示堆的数量。

接下来 nn 行,第 ii 行包含四个整数 aia_i, bib_i, cic_i, did_i(0≤ai,bi,ci,di≤1090 \leq a_i, b_i, c_i, d_i \leq 10^9),分别表示第 ii 个堆的初始状态和目标状态。

题目保证存在操作序列可以将所有堆转换为目标状态。

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

输出格式

对于每个测试用例,输出一个整数,表示达成目标状态所需的最少操作次数。

输入输出样例

  • 输入#1

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

    输出#1

    2
    3
    0

说明/提示

第一个测试用例的解法已在题面中展示。

第二个测试用例的最优解法如下:

第二个测试用例的最优解法

第三个测试用例中,所有堆已处于目标状态。

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

首页