P1803 凌乱的yyy题解
总结:
1、按右端点排序。
2、记录每一个的完成时间,如果下一个排好序的待进行考试的开始时间在本次完成时间后面,即为可选!
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 110;
const int M = 1000010;
int n, ans, finish;
struct node {
int l, r;
} con[M];
//按右端点排序
bool cmp(const node &a, const node &b) {
return a.r <= b.r;
}
int main() {
cin >> n;
//输入
for (int i = 1; i <= n; i++) cin >> con[i].l >> con[i].r;
//排序
sort(con + 1, con + 1 + n, cmp);
for (int i = 1; i <= n; i++)
if (finish <= con[i].l) //如果finish小于遍历于的线段左端点,那么可用。这句话是核心
ans++, finish = con[i].r; //迭代的过程
cout << ans << endl;
return 0;
}