re怎么办

P1439 【模板】最长公共子序列

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 10^5 \times 10^5 的空间肯定会炸啊。


by __Sky__Dream__ @ 2024-03-09 18:11:15

@corgilld 爆数组。你的数组开的太大了(10^5 \times 10^5),建议阅读一下这篇文章,了解各种类型最大范围。


by 0x00dream @ 2024-03-15 19:10:21

@SkyDream__ 那这道题应该用什么类型啊


by __Sky__Dream__ @ 2024-03-15 19:38:12

这道题不需要开二维数组 @0x00dream


|