2 solutions

  • 1
    @ 2026-2-6 11:18:34
    #include<bits/stdc++.h>
    using namespace std;
    typedef pair<int,int> PII;
    #define x first
    #define y second
    const int N=5010;
    PII a[N];
    int f[N];
    int main()
    { 
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i].x>>a[i].y;	
    	} 
    	sort(a+1,a+n+1);
    	int ans=0;
    	for(int i=1;i<=n;i++)
    	{
    		f[i]=1;
    		for(int j=1;j<i;j++)
    		{
    			if(a[i].y>a[j].y) f[i]=max(f[i],f[j]+1);
    		}
    		ans=max(ans,f[i]);
    	}
    	cout<<ans;
    	return 0;
    }
    • 1
      @ 2025-11-25 17:24:52
      #include<bits/stdc++.h>
      using namespace std;
      const int N=5010;
      typedef pair<int,int> PII;
      PII q[N];
      int f[N];
      int main()
      {
      	int n;
      	cin>>n;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>q[i].first>>q[i].second;
      	}
      	sort(q+1,q+n+1);
      	int res=0;
      	for(int i=1;i<=n;i++)
      	{
      		f[i]=1;
      		for(int j=1;j<i;j++)
      		{
      			if(q[i].second>q[j].second)
      			{
      				f[i]=max(f[i],f[j]+1);
      			}
      		}
      		res=max(res,f[i]);
      	}
      	cout<<res;
      	return 0;
      }
      
      • 1

      Information

      ID
      979
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      5
      Tags
      (None)
      # Submissions
      52
      Accepted
      19
      Uploaded By