AT_tupc2024_q.Make Intervals Disjoint

通过率:0%

AC君温馨提醒

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

题目描述

给定 NN 个半开区间。第 ii 个半开区间可以用整数 Li,RiL_i, R_i 表示为 [Li,Ri)[L_i, R_i)。

你可以对以下操作进行任意次(也可以不进行):

  • 从 2N2N 个整数 L1,R1,L2,R2,…,LN,RNL_1,R_1,L_2,R_2,\dots,L_N,R_N 中选择一个,使其值加 11 或减 11。

你的目标是让 NN 个半开区间 [L1,R1),[L2,R2),…,[LN,RN)[L_1,R_1), [L_2,R_2),\dots,[L_N,R_N) 互不相交。更严格地说,对于所有满足 1≤i<j≤N1\le i<j\le N 的整数对 (i,j)(i,j),不存在满足 Li≤x<RiL_i\le x<R_i 且 Lj≤x<RjL_j\le x<R_j 的实数 xx。

其中,当 L≥RL\ge R 时,半开区间 [L,R)[L,R) 表示为空集,空集与任何区间都不相交。

请计算为实现目标所需的最小操作次数。

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

输入格式

输入通过标准输入按以下格式给出。

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

每组数据按以下格式输入。

NN L1L_1 R1R_1 L2L_2 R2R_2 ⋮\vdots LNL_N RNR_N

输出格式

输出共 TT 行,第 ii 行输出第 ii 个测试用例的答案。

输入输出样例

  • 输入#1

    4
    3
    1 4
    3 7
    6 7
    2
    1 1000000000
    1 1000000000
    2
    1 2
    2 3
    4
    20 25
    3 22
    3 23
    3 24

    输出#1

    2
    999999999
    0
    43

说明/提示

致 Universal Cup 参赛者

本题将在收录 Universal Cup 时删除。因此,如果在 Universal Cup 中需要用 AtCoder 的成绩,请优先完成本题以外的题目。

样例解释 1

对于第 11 个测试用例,例如:

  • 将 R1R_1 减少 11;
  • 将 L3L_3 增加 11;

操作后,三个区间分别变为 [1,3),[3,7),[7,7)[1,3), [3,7), [7,7),它们互不相交。
可以证明无法通过少于 22 次操作达成目标,因此第 11 个测试用例的答案为 22。

数据范围

  • 1≤T≤1051 \le T \le 10^5
  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • 1≤Li<Ri≤1091 \le L_i< R_i \le 10^9
  • 所有测试用例中 NN 的总和不超过 2×1052\times 10^5
  • 输入均为整数。

由 ChatGPT 5 翻译

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

首页