corgilld @ 2024-03-09 17:56:32
#include<stdio.h>
#include<string.h>
int n,a[100001],b[100001],c[100001][100001];
void sonstr()
{
int max;
for(int i=1;i<=n;i++)
c[i][0]=0;
for(int i=1;i<=n;i++)
c[0][i]=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i]==b[j])
c[i][j]=c[i-1][j-1]+1;
else if(c[i][j-1]>=c[i-1][j])
c[i][j]=c[i][j-1];
else
c[i][j]=c[i-1][j];
}
}
max=c[n][n];
printf("%d",max);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
scanf("%d",&b[i]);
sonstr();
}
为什么re 编译器可以运行啊
by litjohn @ 2024-03-09 17:59:10
@corgilld re是运行时错误,你得输入数据,它在运行时才会出错。
by xudongyi1 @ 2024-03-09 18:00:02
@corgilld
by __Sky__Dream__ @ 2024-03-09 18:11:15
@corgilld 爆数组。你的数组开的太大了(
by 0x00dream @ 2024-03-15 19:10:21
@SkyDream__ 那这道题应该用什么类型啊
by __Sky__Dream__ @ 2024-03-15 19:38:12
这道题不需要开二维数组 @0x00dream