P1803 43分代码
查看原帖
P1803 43分代码
367436
Miquella楼主2020/12/19 19:15
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
struct h{
    int Bi;// 起始时间,记做Begin
    int Ei;// 结束时间,记做End
};
bool cmp(h a,h b){
    if(a.Ei==b.Ei)
    {
        return a.Bi>b.Bi;
    }
    return a.Ei<b.Ei;
}//用作后期排序
void work()
{
    int n,t = 1;//t表示一组数据
    while(t--)
    {
        cin>>n;
        h arr[n];
        for(int i = 0;i<n;i++)
        {
            cin>>arr[i].Bi>>arr[i].Ei;//开始与结束时间输入
        }
        sort(arr,arr+n,cmp);
        if(n == 0)
        {
            cout<<"0";
            continue;
        }
        int flag = 0,num = 1;//总和与储存
        for(int i = 1;i<n;i++)
        {
            if(arr[i].Bi>arr[flag].Ei) //若开始时间>结束时间,则下一场表演,根据题意得Ei<=Bi,因此最早时间也要n+1
            {
                num++;
                flag = i;
            }
        }
        printf("%d",num+1);
    }
    
}
int main()
{
    work();
    return 0;
}
2020/12/19 19:15
加载中...