2 条题解

  • 1
    @ 2025-10-18 13:13:04
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[5005],b[5005],f[5005],ans=1;
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    		cin>>a[i]>>b[i];
    	for(int i=1;i<n;i++)
    		for(int j=i;j<=n;j++)
    			if(a[i]>a[j])
    			{
    				swap(a[i],a[j]);
    				swap(b[i],b[j]);
    			}
    	for(int i=1;i<=n;i++)
    	{
    		f[i]=1;
    		for(int j=1;j<i;j++)
    		{
    			if(b[j]<b[i]) f[i]=max(f[i],f[j]+1);
    		}
    		ans=max(ans,f[i]);
    	}
    	cout<<ans;
    	return 0;
    }
    
    • 1
      @ 2023-12-23 9:13:04
      #include<bits/stdc++.h>
      using namespace std; 
      struct cs{
      	int x,y;
      }a[5100];
      int n,i,j,maxn,f[10000];
      bool cmp(cs a,cs b)
      {
        return a.x<b.x;
      }
      int main()
      {
        cin>>n;
        for(i=1;i<=n;i++)
        cin>>a[i].x>>a[i].y;
        sort(a+1,a+n+1,cmp);
        for(i=1;i<=n;i++)
        {
        	f[i]=1;
        	for(j=1;j<i;j++)
        	{
        	  if(a[i].y>a[j].y)f[i]=max(f[j]+1,f[i]);
      	}
        }
        for(i=1;i<=n;i++)
        maxn=max(maxn,f[i]);
        cout<<maxn;
        return 0;
      }
      
      • 1

      信息

      ID
      13
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      (无)
      递交数
      269
      已通过
      103
      上传者