典型的贪心题目
1.首先我们想能在规定时间内尽可能的安排更多的活动,那么我们就要按照活动结束的时间来排序,先结束的排在前面,这样我们就能举办更多的活动
2.之后我们依次对他遍历,只要满足要求便+1,并且同时更新last的值,为后续比较做准备
#include <bits/stdc++.h> #define ll long long using namespace std; const int maxn = 1e5 + 5; struct node { int sta, en; bool operator<(const node x) const { return en < x.en; } } w[maxn]; int main() { int n; while (~scanf("%d", &n)) { int ans = 0; for (int i = 1; i <= n; ++i) scanf("%d%d", &w[i].sta, &w[i].en); sort(w + 1, w + n + 1); int last = -1; for (int i = 1; i <= n; ++i) if (w[i].sta >= last) { ans++; last = w[i].en; } printf("%d\n", ans); } return 0; }