可以麻烦帮我看一下吗?
查看原帖
可以麻烦帮我看一下吗?
727268
_fanjin_楼主2023/11/23 20:43

新人,TLE了,代码如下

#include<iostream>
using namespace std;

const int MAXN = 1e5 + 5;

int a[MAXN],b[MAXN];
int f[2][MAXN];
int n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=n;i++){
		scanf("%d",&b[i]);
	} 
	for(int i=1;i<=n;i++){
		for( int j=1;j<=n;j++){
			if(a[i]==b[j])f[i%2][j] = f[(i-1+2)%2][j-1]+1;
			else f[i%2][j]=max(f[(i - 1 + 2)%2][j],f[i%2][j-1]);
		}
	}
	cout<<f[n%2][n];
	return 0;
}

2023/11/23 20:43
加载中...