CSU 1757: 火车入站(区间覆盖的最大覆盖深度)
发布日期:2021-05-15 18:29:56 浏览次数:10 分类:精选文章

本文共 788 字,大约阅读时间需要 2 分钟。

题目:

Description

火车站人们总是在站台等待列车进站,一个站台有火车停留的时候就不能有其他火车进入,今天有n辆火车经过,已知它们进站时间Si以及出站时间Ti,进站时间到出站时间之间火车必须有一个站台给它停靠,问让所有火车都能按时停靠,至少要安排多少个站台给这些火车

Input

第一行输入一个正整数T,表示数据组数

每组数据第一行输入一个正整数n,表示火车数量(n<=10000)
接下来n行,每行输入2个正整数Si,Ti,表示第i辆火车的进站时间和出站时间(Si<Ti<1e9)

Output

每组数据输出至少需要安排多少个站台

Sample Input

131 33 44 6

Sample Output

2

思路:

其实就是n个闭区间,求一个点最多被多少个区间覆盖

代码:

#include
#include
#include
using namespace std;int main(){ int T, n, s[10001], t[10001]; cin >> T; while (T--) { cin >> n; for (int i = 1; i <= n; i++)scanf("%d%d", &s[i], &t[i]); sort(s + 1, s + n + 1); sort(t + 1, t + n + 1); int ans = 0; for (int i = 1, j = 1; i <= n;) { if (s[i] <= t[j]) { if (ans < i - j)ans = i - j; i++; } else j++; } cout << ans + 1 << endl; } return 0;}

上一篇:CSU 1929: 01串(形式系统)
下一篇:CSU 1353: Guessing the Number(字符串周期问题+字符串最小表示法)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月25日 21时58分04秒