典型的贪心题目

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;
}