QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#317993 | #7780. Dark LaTeX vs. Light LaTeX | ucup_team_qiuly# | ML | 0ms | 0kb | C++14 | 1.5kb | 2024-01-30 10:01:37 | 2024-01-30 10:01:37 |
Judging History
answer
#include <iostream>
#include <cstdio>
#include <cstring>
#define int long long
using namespace std;
int n,m;
int qwq[5005][5005],f[5005][5005],g[5005][5005];
char s[5005],t[5005];
int ans;
signed main(){
scanf("%s%s",s+1,t+1);
n=strlen(s+1);
m=strlen(t+1);
for (int i=n;i>=1;i--)
for (int j=m;j>=1;j--)
if (s[i]==t[j])qwq[i][j]=1+qwq[i+1][j+1],ans+=qwq[i][j];
memset(f,0,sizeof(f));
memset(g,0,sizeof(g));
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (s[i]==s[j])f[i][j]=1+f[i-1][j-1];
for (int x=1;x<=n;x++)
for (int y=x+2;y<=n;y++){
int l=max(x+1,y-f[x][y]),r=y-1;
g[x+1][l]++,g[x+1][r+1]--;
}
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++)g[i][j]+=g[i][j-1];
for (int j=1;j<=n;j++)g[i][j]+=g[i][j-1];
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
ans+=g[i][i+qwq[i][j]-1];
swap(s,t);
swap(n,m);
memset(qwq,0,sizeof(qwq));
for (int i=n;i>=1;i--)
for (int j=m;j>=1;j--)
if (s[i]==t[j])qwq[i][j]=1+qwq[i+1][j+1];
memset(f,0,sizeof(f));
memset(g,0,sizeof(g));
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (s[i]==s[j])f[i][j]=1+f[i-1][j-1];
for (int x=1;x<=n;x++)
for (int y=x+2;y<=n;y++){
int l=max(x+1,y-f[x][y]),r=y-1;
g[x+1][l]++,g[x+1][r+1]--;
}
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++)g[i][j]+=g[i][j-1];
for (int j=1;j<=n;j++)g[i][j]+=g[i][j-1];
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
ans+=g[i][i+qwq[i][j]-1];
cout<<ans<<endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Memory Limit Exceeded
input:
abab ab
output:
8