思路
这道题和P1803 凌乱的yyy / 线段覆盖基本一样,只不过这道题订单结束后还要等一个时间。
先将所有的结束时间排序,然后依次进行贪心。如果能够接受就接受;如果订单冲突,就放弃。
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct Node{
int L,R;
}a[1000010];
bool mycmp(Node a,Node b)
{
return a.R<b.R;
}
int main()
{
int n,ans=0;
cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i].L>>a[i].R;
sort(a+1,a+n+1,mycmp);
int t=-1;
for(int i=1;i<=n;++i)
{
if(a[i].L>t) ans++,t=a[i].R;
}
cout<<ans<<endl;
return 0;
}