QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#735816 | #7780. Dark LaTeX vs. Light LaTeX | da17_ | WA | 35ms | 297412kb | C++14 | 1.0kb | 2024-11-11 21:48:23 | 2024-11-11 21:48:24 |
Judging History
answer
#include <bits/stdc++.h>
#define lc(x) (x<<1)
#define rc(x) (x<<1|1)
#define lb(x) (x&-x)
using namespace std;
using ll=long long;
using ull=unsigned long long;
using pii=pair<int,ll>;
const int N=5e3+5;
int lcp[N][N],lcs[N][N],f[N][N]; char s[N],t[N]; ll ans;
void solve(char *s,char *t,int n,int m){
memset(lcp,0,sizeof(lcp));
memset(lcs,0,sizeof(lcs));
memset(f,0,sizeof(f));
for(int i=n;i;i--)
for(int j=n;j;j--)
lcp[i][j]=s[i]==s[j]?lcp[i+1][j+1]+1:0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
lcs[i][j]=s[i]==t[j]?lcs[i-1][j-1]+1:0;
for(int j=3;j<=n;j++){
for(int w=1;w<=m;w++)
f[j][j-lcs[j-1][w]]++;
for(int k=2;k<=j;k++)
f[j][k]+=f[j][k-1];
}
for(int i=1;i<=n;i++)
for(int j=i+2;j<=n;j++)
ans+=f[j][i+1+min(lcp[i][j],j-i-1)]-f[j][i];
}
int main(){
scanf("%s%s",s+1,t+1);
int n=strlen(s+1),m=strlen(t+1);
for(int i=n;i;i--)
for(int j=m;j;j--)
if(s[i]==t[j])
ans+=lcp[i][j]=lcp[i+1][j+1]+1;
solve(s,t,n,m),solve(t,s,m,n);
return printf("%lld",ans)&0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 35ms
memory: 297412kb
input:
abab ab
output:
9
result:
wrong answer 1st numbers differ - expected: '8', found: '9'