只要读好题目就可以做了。
当时读题没搞懂~~最关键的地方反而忽略了。
这种题目建议先聚焦关键词,比如说在题目描述的最后面。
区间不能重叠,从前往后数,停在重叠前
排序直接判断上一个end和这一个start即可。
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int n;
struct Tim
{
int start,end;
}a[N];
bool cmp(const Tim &a,const Tim &b)
{
return a.start<b.start;
}
void solve()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&a[i].start,&a[i].end);
sort(a+1,a+n+1,cmp);
int ans=n;
for(int i=1;i<n;i++)
{
if(a[i+1].start>a[i].end) continue;
ans=i-1;
break;
}
printf("%d\n",ans);
}
int main()
{
int t;
scanf("%d",&t);
while(t--) solve();
return 0;
}