题目链接: [Schedules]
大致题意:
给出多个时间段,若冲突,就需要在添加一台机器,问最少需要多少台机器
解题思路:
记录时间段,a[l]++,a[r]–,统计前缀和,第i个的值是多少就表示需要多少机器
AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 1e5 + 10;
int a[N];
int main(void)
{
int n; scanf("%d", &n);
int m = 0;
for (int i = 1; i <= n; ++i) {
int l, r; scanf("%d%d", &l, &r);
a[l]++; a[r]--;
m = max(m, r);
}
int ans = 0, res=0;
for (int i = 0; i <= m; ++i) {
ans += a[i];
res = max(res, ans);
}
cout << res << endl;
return 0;
}