其他分享
首页 > 其他分享> > Number of Groups (区间重叠问题(时间线性)+贪心优化时间复杂度+优先队列(或者set))

Number of Groups (区间重叠问题(时间线性)+贪心优化时间复杂度+优先队列(或者set))

作者:互联网

大佬的题解:CodeCraft-22 and Codeforces Round #795 (Div. 2) A-E - 知乎 (zhihu.com)
Number of Groups
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
You are given n colored segments on the number line. Each segment is either colored red or blue. The i-th segment can be represented by a tuple (ci,li,ri). The segment contains all the points in the range [li,ri], inclusive, and its color denoted by ci:

if ci=0, it is a red segment;
if ci=1, it is a blue segment.
We say that two segments of different colors are connected, if they share at least one common point. Two segments belong to the same group, if they are either connected directly, or through a sequence of directly connected segments. Find the number of groups of segments.


Input
Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤105). Description of the test cases follows.

The first line of each test case contains a single integer n (1≤n≤105) — the number of segments.

Each of the next n lines contains three integers ci,li,ri (0≤ci≤1,0≤li≤ri≤109), describing the i-th segment.

It is guaranteed that the sum of n over all test cases does not exceed 105.

Output
For each test case, print a single integer k, the number of groups of segments.

Example
inputCopy
2
5
0 0 5
1 2 12
0 4 7
1 9 16
0 13 19
3
1 0 1
1 1 2
0 3 4
outputCopy
2
3
Note
In the first example there are 5 segments. The segments 1 and 2 are connected, because they are of different colors and share a point. Also, the segments 2 and 3 are connected, and so are segments 4 and 5. Thus, there are two groups: one containing segments {1,2,3}, and the other one containing segments {4,5}.
View PROBLEM

思路:

 

标签:ci,set,segments,contains,Number,number,test,segment,复杂度
来源: https://www.cnblogs.com/Lamboofhome/p/16342641.html