#include<iostream>
#include<algorithm>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
struct program {
int s;
int e;
};
int cmp(program a, program b) {
return a.e < b.e;
}
int main() {
int n; program time[110];
while (~scanf("%d", &n) && n) {
memset(time, 0, sizeof(time));
int i;
for (i = 0; i < n; i++) {
scanf("%d%d", &time[i].s, &time[i].e);
}
sort(time, time + n, cmp);
int temp = time[0].e, count = 1;
for (i = 1; i < n; i++) {
if (time[i].s >= temp) {
count++;
temp = time[i].e;
}
}
printf("%d\n", count);
}
return 0;
}
一些注意的点都在代码注释中了。
//有向图无环图中才有拓扑排序,且都是前面的编号的点指向后面编号的点
#include<iostream>
#include<cstring>
using namespace std;
const int N 1e5 9;
int e[N], ne[N], h[N], idx, n, m, d[N], q[N];void add(in…