大海中的孤帆 @ 2023-08-03 09:25:55
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n;
int f[10050][10050];
int x[100010],y[100010];
int q(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>x[i];
for(int i=1;i<=n;++i)
cin>>y[i];
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
f[i][j]=q(f[i-1][j],f[i][j-1]);
if(x[i]==y[j])
f[i][j]=q(f[i][j],f[i-1][j-1]+1);
}
}
cout<<f[n][n];
return 0;
}
by _Haoomff_ @ 2023-08-03 09:27:13
@大海中的孤帆 这题要用二分优化
by 大海中的孤帆 @ 2023-08-03 09:30:34
@Haoomff
知道,但不会,求教
by Pink_Cut_Tree @ 2023-08-03 14:51:21
@大海中的孤帆 请您估计一下时空范围:
您的代码是 不炸才怪
您开了一个 不炸才怪
鉴定为:
建议优化,比如二维压一维+二分
(虽然我也不知道怎么优化)
by Pink_Cut_Tree @ 2023-08-03 14:51:29
@大海中的孤帆
by 大海中的孤帆 @ 2023-08-03 16:29:25
@Present_Coming_Time
我知道这个,但是不开这么大该RE了