CF2018E2.Complex Segments (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是这个问题的困难版本。在这个版本中, n 的范围和时间限制都变高了。
当一个区间的集合可以被分割成一些子集并满足以下条件时,这个集合是复杂的:
- 所有的子集的大小相同
- 当且仅当两个区间在同一子集内时,这两个区间相交。
t 组数据,每组数据给你一个集合包含 n 个区间 [l1,r1],[l2,r2],…,[ln,rn]。求出最大的子集满足其为复杂的,输出这个集合的大小。
输入格式
第一行输入数据个数 t(1≤t≤103)。
每个数据的第一行包含一个整数 n(1≤n≤3⋅105),集合的区间个数。
每个数据的第二行包含 n 个整数 l1,l2,…,ln(1≤li≤2n),分别表示这 n 个区间的左端点。
每个数据的第三行包含 n 个整数 r1,r2,…,rn(li≤ri≤2n),分别表示这 n 个区间的右端点。
保证所有数据 n 的总和不超过 3⋅105。
输出格式
对于每个数据输出一行表示最大的复杂的子集的大小。
输入输出样例
输入#1
3 3 1 2 3 5 4 6 5 1 2 3 6 8 5 4 7 9 10 5 3 1 4 1 5 7 2 6 5 10
输出#1
3 4 4
输入解题思路,AI测评打分。不知道怎么写?