CF1285E.Delete a Segment

提高+/省选-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

There are nn segments on a OxOx axis [l1,r1][l_1, r_1], [l2,r2][l_2, r_2], ..., [ln,rn][l_n, r_n]. Segment [l,r][l, r] covers all points from ll to rr inclusive, so all xx such that l≤x≤rl \le x \le r.

Segments can be placed arbitrarily — be inside each other, coincide and so on. Segments can degenerate into points, that is li=ril_i=r_i is possible.

Union of the set of segments is such a set of segments which covers exactly the same set of points as the original set. For example:

  • if n=3n=3 and there are segments [3,6][3, 6], [100,100][100, 100], [5,8][5, 8] then their union is 22 segments: [3,8][3, 8] and [100,100][100, 100];
  • if n=5n=5 and there are segments [1,2][1, 2], [2,3][2, 3], [4,5][4, 5], [4,6][4, 6], [6,6][6, 6] then their union is 22 segments: [1,3][1, 3] and [4,6][4, 6].

Obviously, a union is a set of pairwise non-intersecting segments.

You are asked to erase exactly one segment of the given nn so that the number of segments in the union of the rest n−1n-1 segments is maximum possible.

For example, if n=4n=4 and there are segments [1,4][1, 4], [2,3][2, 3], [3,6][3, 6], [5,7][5, 7], then:

  • erasing the first segment will lead to [2,3][2, 3], [3,6][3, 6], [5,7][5, 7] remaining, which have 11 segment in their union;
  • erasing the second segment will lead to [1,4][1, 4], [3,6][3, 6], [5,7][5, 7] remaining, which have 11 segment in their union;
  • erasing the third segment will lead to [1,4][1, 4], [2,3][2, 3], [5,7][5, 7] remaining, which have 22 segments in their union;
  • erasing the fourth segment will lead to [1,4][1, 4], [2,3][2, 3], [3,6][3, 6] remaining, which have 11 segment in their union.

Thus, you are required to erase the third segment to get answer 22.

Write a program that will find the maximum number of segments in the union of n−1n-1 segments if you erase any of the given nn segments.

Note that if there are multiple equal segments in the given set, then you can erase only one of them anyway. So the set after erasing will have exactly n−1n-1 segments.

在 OxOx 轴上有 nn 个线段:[l1,r1][l_1, r_1]、[l2,r2][l_2, r_2]、…、[ln,rn][l_n, r_n]。线段 [l,r][l, r] 包含从 ll 到 rr(含端点)的所有点,即所有满足 l≤x≤rl \le x \le r 的 xx。

这些线段可以任意放置——彼此嵌套、重合等。线段也可以退化为单个点,即允许 li=ril_i = r_i。

给定线段集合的并集,是指一个线段集合,其覆盖的点集与原集合完全相同。例如:

  • 若 n=3n=3,线段为 [3,6][3, 6]、[100,100][100, 100]、[5,8][5, 8],则它们的并集包含 22 个线段:[3,8][3, 8] 和 [100,100][100, 100];
  • 若 n=5n=5,线段为 [1,2][1, 2]、[2,3][2, 3]、[4,5][4, 5]、[4,6][4, 6]、[6,6][6, 6],则它们的并集包含 22 个线段:[1,3][1, 3] 和 [4,6][4, 6]。

显然,并集中的线段两两互不相交(即无公共内点,但端点可重合)。

你的任务是:恰好删除给定的 nn 个线段中的一个,使得剩余 n−1n-1 个线段的并集所含线段数量尽可能多。

例如,若 n=4n=4,线段为 [1,4][1, 4]、[2,3][2, 3]、[3,6][3, 6]、[5,7][5, 7],则:

  • 删除第一个线段后,剩下 [2,3][2, 3]、[3,6][3, 6]、[5,7][5, 7],其并集含 11 个线段;
  • 删除第二个线段后,剩下 [1,4][1, 4]、[3,6][3, 6]、[5,7][5, 7],其并集含 11 个线段;
  • 删除第三个线段后,剩下 [1,4][1, 4]、[2,3][2, 3]、[5,7][5, 7],其并集含 22 个线段;
  • 删除第四个线段后,剩下 [1,4][1, 4]、[2,3][2, 3]、[3,6][3, 6],其并集含 11 个线段。

因此,应删除第三个线段,得到最大答案 22。

请编写程序,在删除任意一个给定线段后,求出剩余 n−1n-1 个线段的并集所能达到的最大线段数量。

注意:若给定集合中存在多个相同的线段,你仍只能删除其中一个。因此删除后的集合一定恰好包含 n−1n-1 个线段。

输入格式

The first line contains one integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases in the test. Then the descriptions of tt test cases follow.

The first of each test case contains a single integer nn (2≤n≤2⋅1052 \le n \le 2\cdot10^5) — the number of segments in the given set. Then nn lines follow, each contains a description of a segment — a pair of integers lil_i, rir_i (−109≤li≤ri≤109-10^9 \le l_i \le r_i \le 10^9), where lil_i and rir_i are the coordinates of the left and right borders of the ii-th segment, respectively.

The segments are given in an arbitrary order.

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

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)——测试中测试用例的数量。随后是 tt 个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2\cdot10^5)——给定集合中线段的数量。接下来是 nn 行,每行描述一条线段:一对整数 lil_i、rir_i(−109≤li≤ri≤109-10^9 \le l_i \le r_i \le 10^9),其中 lil_i 和 rir_i 分别为第 ii 条线段左右端点的坐标。

这些线段以任意顺序给出。

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

输出格式

Print tt integers — the answers to the tt given test cases in the order of input. The answer is the maximum number of segments in the union of n−1n-1 segments if you erase any of the given nn segments.

输出 tt 个整数——按输入顺序给出的 tt 个测试用例的答案。答案为:在给定的 nn 个线段中删除任意一个后,剩余 n−1n-1 个线段的并集所能形成的最大线段数量。

输入输出样例

  • 输入#1

    3
    4
    1 4
    2 3
    3 6
    5 7
    3
    5 5
    5 5
    5 5
    6
    3 3
    1 1
    5 5
    1 5
    2 2
    4 4

    输出#1

    2
    1
    5

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

首页