3 条题解

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

    信息

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