4 条题解

  • 2
    @ 2024-12-10 21:11:03
    #include <bits/stdc++.h>
    const int N=1e4+10;
    using namespace std;
    int n,ans,sum;
    int a[N],b[N],f[N][N];
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++){
        	cin>>a[i];
    	}
        for(int i=1;i<=n;i++){
        	cin>>b[i];
    	}
        for(int i=1;i<=n;i++){
            sum=1;
            for(int j=1;j<=n;j++){
                f[i][j]=f[i-1][j];  
                if(a[i]==b[j]){
                    f[i][j]=max(f[i][j],sum);
                }
                if(b[j]<a[i])  
                    sum=max(sum,f[i][j]+1);            
            }
        }
        for(int i=1;i<=n;i++){
        	ans=max(ans,f[n][i]);
    	}
        cout<<ans;
    }
    
    
    • 1
      @ 2025-11-2 20:23:23
      #include <bits/stdc++.h>
      using namespace std;
      const int N = 1e4 + 10;
      const int INF = 0x3f3f3f3f;
      int n;
      int a[N],b[N];
      int dp[N][N];
      int main(){
          cin >> n;
          for(int i = 1;i <= n;i++){
          	cin >> a[i];
      	}
          for(int i = 1;i <= n;i++){
          	cin >> b[i];
      	}
          for(int i = 1;i <= n;i++){
              int sum = 1;
              for(int j = 1;j <= n;j++){
                  dp[i][j] = dp[i - 1][j];  
                  if(a[i] == b[j]){
                      dp[i][j] = max(dp[i][j],sum);
                  }
                  if(a[i] > b[j]){
                      sum = max(sum,dp[i][j] + 1);
      			}  
              }
          }
          int nmax = -INF;
          for(int i = 1;i <= n;i++){
          	nmax = max(nmax,dp[n][i]);
      	}
          cout << nmax;
      }
      
      • 0
        @ 2023-12-17 16:10:41
        /************************************
        Note Book:
        ************************************/
        #include <iostream>
        #include <cstdio>
        #include <iomanip>
        #include <cmath>
        #include <algorithm>
        #include <cstring>
        #include <string>
        #include <stack>
        #include <queue>
        #include <math.h>
        #define LL long long
        using namespace std;
        const int INF = 0x3f3f3f3f;
        const int MAXN = 5010;
        int n , a[MAXN] , b[MAXN] , dp[MAXN] , maxn;
        int main()
        {
        	cin >> n;
        	for(int i = 1; i <= n; i++)
        	{
        		cin >> a[i];
        	}
        	for(int i = 1; i <= n; i++)
        	{
        		cin >> b[i];
        	}
        	for(int i = 1; i <= n; i++)
        	{
        		maxn = 0;
        		for(int j = 1; j <= n; j++)
        		{
        			if(b[j] < a[i] && maxn < dp[j])
        			{
        				maxn = dp[j];
        			}
        			if(b[j] == a[i])
        			{
        				dp[j] = maxn + 1;
        			}
        		}
        	}
        	maxn = 0;
        	for(int i = 1 ; i <= n ; i++ )
        	{
        		if(maxn < dp[i])
        		{
        			maxn = dp[i];
        		}
        	}
        	cout << maxn;
        	return 0;
        }
        
        
        
        • -2
          @ 2023-10-1 13:53:21

          我知道你们没题解活不了

          #include <bits/stdc++.h>
          using namespace std;
          const int maxn=3e3+10;
          int n,res;
          int a[maxn],b[maxn];
          int f[maxn][maxn];
          int maxv;
          int main()
          {
              cin>>n;
              for(int i=1;i<=n;i++) cin>>a[i];
              for(int i=1;i<=n;i++) cin>>b[i];
              for(int i=1;i<=n;i++) 
              {
                  maxv=1;
                  for(int j=1;j<=n;j++)
                  {
                      f[i][j]=f[i-1][j];  
                      if(a[i]==b[j])
                      {
                          f[i][j]=max(f[i][j],maxv);
                      }
                      if(b[j]<a[i])  
                          maxv=max(maxv,f[i][j]+1);            
                  }
              }
              int res=0;
              for(int i=1;i<=n;i++) res=max(res,f[n][i]); 
              cout<<res<<endl;
              return 0;
          }
          
          • 1

          信息

          ID
          183
          时间
          1000ms
          内存
          128MiB
          难度
          6
          标签
          递交数
          247
          已通过
          73
          上传者