5 条题解

  • 0
    @ 2025-10-15 23:51:21
    #include<bits/stdc++.h>
    using namespace std;
    
    const int N = 100010;
    pair<int, int> activities[N];  // first:结束时间, second:开始时间
    
    int main()
    {
        int n;
        cin >> n;
        
        for(int i = 0; i < n; i++)
        {
            cin >> activities[i].second >> activities[i].first;  // 输入:开始时间,结束时间
        }
        
        sort(activities, activities + n);  // 按结束时间排序
        
        int count = 0, last_end = -2e9;
        for(int i = 0; i < n; i++)
        {
            if(activities[i].second >= last_end)  // 当前活动开始时间 >= 上一个活动结束时间
            {
                count++;
                last_end = activities[i].first;  // 更新最后一个活动的结束时间
            }
        }
        
        cout << count;
        return 0;
    }
    

    信息

    ID
    94
    时间
    1000ms
    内存
    512MiB
    难度
    8
    标签
    (无)
    递交数
    831
    已通过
    127
    上传者