50分,求调
查看原帖
50分,求调
1417685
tianhaoyan楼主2024/12/7 13:15
#include<bits/stdc++.h>
using namespace std;
struct adv{
	long long x,y;
}a[21000];
long long q[21000];
long long s(adv xx,adv yy)
{
	return xx.x<yy.x;
}
long long n,m,i,j,k,h;
int main()
{
	cin>>n;
	for(i=1;i<=n;++i) cin>>a[i].x>>a[i].y;
	sort(a+1,a+n+1,s); 
	h=1; q[h]=a[1].y;
	for(i=1;i<=n;++i)
	{
		if(a[i].y>q[h])
		{
			h++; q[h]=a[i].y;
		}
		else if(a[i].y<q[h])
			q[lower_bound(q+1,q+h+1,a[i].y)-q]=a[i].y;
	}
	cout<<h;
	return 0;
}
2024/12/7 13:15
加载中...