xjx199 @ 2024-05-06 00:31:20
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN=100001;
int n,a[MAXN],b[MAXN],dp[2][MAXN],ans;
signed main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
if(a[i]==b[j]) dp[1][j]=dp[0][j-1]+1;
else dp[1][j]=max(dp[0][j],dp[1][j-1]);
memcpy(dp[0],dp[1],(n+1)*4); //dp[0]目标 dp[1]被拷贝 (n+1)*4内存占用
}
printf("%lld\n",dp[1][n]);
return 0;
}
by World_Creater @ 2024-05-06 06:54:37
#define int long long
所以单个变量大小变成了 memcpy
可能会出问题。