3 条题解

  • 0
    @ 2024-7-14 18:00:37
    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=5e3+10;
    int n,dp[N],len,x,y;
    struct Friendly_City{
    	int k,l;
    }a[N];
    
    bool cmp(Friendly_City x,Friendly_City y)
    {
    	return x.k<y.k;
    }
    
    int main()
    {
    	cin>>x>>y;
    	scanf("%d",&n);
    	for(int i=1;i<=n;++i)
    	{
    		scanf("%d%d",&a[i].k,&a[i].l);
    	}
    	sort(a+1,a+n+1,cmp);
    	dp[++len]=a[1].l;
    	for(int i=1;i<=n;++i)
    	{
    		if(dp[len]<a[i].l)
    		{
    			dp[++len]=a[i].l;
    		}
    		else
    		{
    			int upd=upper_bound(dp+1,dp+len+1,a[i].l)-dp;
    			dp[upd]=a[i].l;
    		}
    	}
    	printf("%d",len);
    	return 0;
    }
    

    信息

    ID
    1722
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    350
    已通过
    79
    上传者