9 条题解

  • 0
    @ 2025-10-9 17:42:48
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    struct Activity {
        int start;
        int end;
    };
    bool cmp(Activity a, Activity b) {
        return a.end < b.end;//结束时间小的在左边的意思
    }
    int main()
    {
        int m,n;
        scanf("%d",&m);
        while(m--)//m组
        {
            scanf("%d",&n);//n个活动
            Activity activities[10001];  // 使用结构体数组
            // 读取所有活动
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&activities[i].start, &activities[i].end);
            }
            // 按结束时间排序
            sort(activities, activities + n, cmp);
            int count = 0;
            int lasttime = -1;
            for(int i=0;i<n;i++)
            {
                if(lasttime < activities[i].start)
                {
                    count++;
                    lasttime = activities[i].end;
                }
            }
            printf("%d\n",count);
        }
        return 0;
    }
    

    信息

    ID
    124
    时间
    3000ms
    内存
    128MiB
    难度
    8
    标签
    (无)
    递交数
    1741
    已通过
    226
    上传者