求助

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

奋斗吧!少女 @ 2021-12-05 09:22:42

这道题在别的网站上对了,

1个RE

5个WA

2个MLE

2个TLE

代码如下

#include<bits/stdc++.h>
using namespace std;
const int N=10010;int n,m;char a[N],b[N];int f[N][N];
int main(){
    scanf("%d%d", &n, &m);scanf("%s%s",a+1,b+1);
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++){
        f[i][j]=max(f[i-1][j],f[i][j-1]);
        if(a[i]==b[j])  f[i][j]=max(f[i][j],f[i-1][j-1]+1);
    }
    printf("%d\n",f[n][m]);return 0;
}

请问哪里错了,该怎么改


by szccc09 @ 2021-12-05 09:34:21

a和b不是char类型的


by 望月Asta @ 2021-12-05 09:37:52

  1. 输入的格式不对

  2. 数组开小了

  3. 这道题是 LCS 转 LIS 然后 \mathrm{O} (n \log n) 求解,而不是 n^2 的做法.


by orange_dream @ 2021-12-05 11:09:58

数据不支持n方做法吧


|