10分求助
查看原帖
10分求助
1284796
wangjiawenshilaoliu楼主2024/7/18 10:26

就第一个AC。

#include<bits/stdc++.h>
using namespace std;
long long dp[10001][10001];
int main(){
	int n;
	cin>>n;
	long long a[10001],b[10001];
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	if(a[1]==b[1]){
		dp[1][1]=1;
	}
	else{
		dp[1][1]=0;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;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[j-1][i]);
			}
		}
	}
	cout<<dp[n][n];
    return 0;
}
2024/7/18 10:26
加载中...