2 solutions

  • 1
    @ 2025-11-16 15:07:05
    #include<bits/stdc++.h>
    using namespace std;
    const int N=3010;
    int f[N][N];
    int a[N],b[N];
    int main()
    {
    	int n;
    	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 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(maxv,f[i][j]);
    			}
    			if(a[i]>b[j])
    			{
    				maxv=max(maxv,f[i-1][j]+1);
    			}
    		}
    	}
    	int res=0;
    	for(int i=1;i<=n;i++)
    	{
    		res=max(res,f[n][i]);
    	}
    	cout<<res;
    	return 0;
    }
    
    
    • -4
      @ 2024-7-4 9:11:15
      #include<bits/stdc++.h>
      using namespace std;
      const int N=3010;
      int f[N][N];
      /*
      f[i][j] 表示a的前i个序列和b的前j个序列 构成的以b[j]结尾的最长上升子序列的最大值
      */
      int a[N],b[N];
      int main()
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              cin>>a[i];
          }
          for(int j=1;j<=n;j++)
          {
              cin>>b[j];
          }
          for(int i=1;i<=n;i++) //枚举第一个序列
          {
              for(int j=1;j<=n;j++) //枚举第二个序列
              {
                  f[i][j]=f[i-1][j]; //不选a的第i个字符
                  if(a[i]==b[j]) //可以选
                  {
                      int maxv=1;
                      for(int k=1;k<j;k++) //最长上升子系列
                      {
                          if(b[j]>b[k])
                          {
                              maxv=max(maxv,f[i-1][k]+1);
                          }   
                      }
                      f[i][j]=max(maxv,f[i][j]);
                  } 
              }
           
          }
          int res=0;
          for(int i=1;i<=n;i++)
          {
              res=max(res,f[n][i]);
          }
          cout<<res;
          return 0;
      }
      
      • 1

      Information

      ID
      220
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      7
      Tags
      (None)
      # Submissions
      59
      Accepted
      9
      Uploaded By