题目链接
思路非常简单的一道贪心题目,但是在给pair排序的时候出了一点问题
我在使用重载<时发现不起作用,询问学长后才知是pair自带了重载,我定义的被覆盖了,解决方法是用自定义函数
#include<bits/stdc++.h>
using namespace std;
int ans=1;
pair<int,int>line[110];
bool cmp(const pair<int,int>a,const pair<int,int>b)
{
if(a.second==b.second) return a.first<b.first;
return a.second<b.second;
}
/*bool operator <(const pair<int,int>a,const pair<int,int>b)
{
if(a.second==b.second) return a.first<b.first;
return a.second<b.second;
}*/
int main()
{
int n;int beg,end;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&beg,&end);
line[i].first=min(beg,end);
line[i].second=max(beg,end);
}
sort(line,line+n,cmp);
beg=line[0].first;
end=line[0].second;
for(int i=0;i<n;i++)
{ //cout<<line[i].first<<' '<<line[i].second<<endl;
if(line[i].first>=end)
{
ans++;
beg=line[i].first;
end=line[i].second;
}
}
cout<<ans<<endl;
}