4 条题解

  • 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;
      }
      
      • 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;
        }
        
        • 0
          @ 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

          信息

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