题解:AT_abc457_g [ABC457G] Catch All Apples
注意到,一个机器人可以从苹果
令
LIS 可以使用贪心 + 二分求,复杂度
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define lowbit(x) ((x)&(-(x)))
const int N=3e5+10,mod=998244353;
pair<int,int>a[N];
bool cmp(pair<int,int>x,pair<int,int>y)
{
if(x.fi!=y.fi) return x.fi<y.fi;
return x.se>y.se;
}
int cur,b[N];
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int t,x;
cin>>t>>x;
a[i]={x-t,x+t};
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
int p=lower_bound(b+1,b+cur+1,a[i].se)-b;
if(p==cur+1) b[++cur]=a[i].se;
else b[p]=a[i].se;
}
cout<<cur;
return 0;
}
:::