贪心~
#include<bits/stdc++.h>
using namespace std;
struct node{
int s,f;
}nod[33000];
bool comp(node x,node y)
{
if(x.f<y.f) return true;
else return 0;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
nod[i].s=x,nod[i].f=x+y-1;
}
sort(nod+1,nod+1+n,comp);//按照结束位置排序
int fina=nod[1].f,cnt=1;//fina记录上一个的结束位置
for(int i=2;i<=n;i++)
{
if(fina>=nod[i].s) continue;
else{
cnt++;
fina=nod[i].f;
}
}
cout<<cnt;
}

京公网安备 11010502036488号