求助,40分1wa5re
查看原帖
求助,40分1wa5re
677147
sakura_erii楼主2023/10/20 18:12
#include<bits/stdc++.h>
using namespace std;
int a[100010],b[100010],dp[1000][1000];
int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i],dp[i][0]=1;
	for(int i=0;i<n;i++) cin>>b[i],dp[0][i]=1;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(a[i]==b[j])
			{
				dp[i][j]=dp[i-1][j-1]+1;
			}
			else
			{
				dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
			}
		}
	}
	int pd=0;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(dp[i][j]>pd) pd=dp[i][j];
		}
	}
	cout<<pd;
	return 0;
}
2023/10/20 18:12
加载中...