好的,这是整理好的题面,不含解题思路,只包含样例解释。
题目描述
给定 n 个区间 [ai,bi] 和 n 个整数 ci。
你需要构造一个整数集合 Z,使得对于每个 i∈[1,n],集合 Z 中满足 ai≤x≤bi 的整数 x 不少于 ci 个。
求这样的整数集合 Z 最少包含多少个数。
输入格式
第一行一个整数 n。
接下来 n 行,每行三个整数 ai,bi,ci。
输出格式
输出一个整数,表示最少包含的数的个数。
数据范围
- 1≤n≤50000
- 0≤ai,bi≤50000
- 0≤ci≤bi−ai+1
输入样例
5
3 7 3
8 10 3
6 8 1
1 3 1
10 11 1
输出样例
6
样例解释
n=5,要求如下:
- [3,7] 内至少包含 3 个整数
- [8,10] 内至少包含 3 个整数
- [6,8] 内至少包含 1 个整数
- [1,3] 内至少包含 1 个整数
- [10,11] 内至少包含 1 个整数
寻找最少集合
可以尝试选一些数覆盖这些要求。
一种可行方案:选 {3,4,5,8,9,10}
检查:
- [3,7]:有 3,4,5 共 3 个 ✅
- [8,10]:有 8,9,10 共 3 个 ✅
- [6,8]:有 8 共 1 个 ✅
- [1,3]:有 3 共 1 个 ✅
- [10,11]:有 10 共 1 个 ✅
总个数 6。
能否用 5 个数满足?
[3,7] 至少 3 个,[8,10] 至少 3 个,这两个区间无重叠(因为 [3,7] 最右 7,[8,10] 最左 8),它们之间完全分离,因此至少要 3+3=6 个数(因为 [3,7] 需要 3 个不同整数,[8,10] 需要 3 个不同整数,它们没有公共数字)。
所以最少就是 6 个。
输出 6。