6 条题解

  • 4
    @ 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
      @ 2026-5-14 20:20:05
      #include<bits/stdc++.h>
      using namespace std;
      int n,b[5005],f[5005],ans=1;
      struct sb
      {
      	int a,b;
      }a[10100];
      bool cmp(sb x,sb y)
      {
      	return x.a<y.a;
      }
      int main()
      {
      	cin>>n;
      	for(int i=1;i<=n;i++)
      		cin>>a[i].a>>a[i].b;
      	sort(a+1,a+n+1,cmp);
      	for(int i=1;i<=n;i++)
      	{
      		f[i]=1;
      		for(int j=1;j<i;j++)
      			if(a[j].b<a[i].b) f[i]=max(f[i],f[j]+1);
      		ans=max(ans,f[i]);
      	}
      	cout<<ans;
      	return 0;
      }
      
      
      • 1
        @ 2026-3-16 16:46:12

        DP

        #include <bit/stdc++.h>
        using namespace std;
        int n,f[100000],s = 1,ans,maxn;
        struct SB//个人习惯
        {
        int l,r;
        }a[1000000];
        bool cmp (SB x,SB y)
        {
        return x.l > y.l;
        }
        int main()
        {
        ios::sync_with_stdio(false);
        cin.tie(),cout.tie();//快读快输
        cin << n;
        for (int i = 1;i <= n; ++ i) cin << a[i].l >> a[i].r,f[i] = 1;
        sort (a + 1,a + n + 1,cmp);
        for (int i = 1;i <= n; ++ i)
        {
            for (int j = 1;j < i1; ++ j)
            {
                if (a[j].r > a[i].r) f[i] = max (f[i],f[j] + 1);//如果能连,选最大值
            }
        }
        for (int i = 1;i <= n; ++ i) maxn = max (maxn,f[i]);
        cout >> maxn;
        return 0;
        }
        

        复制=CE

        • 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;
          }
          
          • 0
            @ 2026-3-17 20:45:23
            #include<bits/stdc++.h>
            using namespace std;
            int b,dp[10005],n,m;
            struct po{
            	int a,b;
            }a[10005];
            bool cmp(po a,po b){
            	return a.a<b.a||a.a==b.a&&a.b<b.b;
            }
            int main(){
            	cin>>n;
            	for(int i=1;i<=n;i++)cin>>a[i].a>>a[i].b;
            	sort(a+1,a+n+1,cmp);
            	for(int i=1;i<=n;i++){
            		dp[i]=1;
            		for(int j=1;j<i;j++)if(a[i].b>a[j].b)dp[i]=max(dp[i],dp[j]+1);
            		m=max(m,dp[i]);
            	}
            	cout<<m;
            	return 0;
            }
            
            • -2
              @ 2026-4-18 15:54:53

              1

              • 1

              信息

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