教室规划问题

测试数据 12组

12
0 3
2 5
4 7
3 8
6 10
8 10
9 11
11 15
12 15
10 13
13 17
15 18
View Code

代码:

#include<iostream>
#include<algorithm>
using namespace std;
struct sa{
    int x,y;
}data[100];
int cmp(const sa &a,const sa &b){
    return a.y<b.y;
}
int main()
{
    int n,sum;
    sa tmp;
    while(cin>>n){
        for(int i=0;i<n;i++) cin>>data[i].x>>data[i].y;
        sort(data,data+n,cmp);
        sum=1;
        tmp=data[0];
        for(int i=1;i<n;i++) {
            if(tmp.y<=data[i].x){
                sum++;
                tmp=data[i];
            }
        }
            cout<<sum<<endl;
    }
} 
View Code

按照结束的时间进行排列,当后一个任务开始时间大于前一个任务的结束时间,sum++

原文地址:https://www.cnblogs.com/helloworld2019/p/10361655.html