QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#735816#7780. Dark LaTeX vs. Light LaTeXda17_WA 35ms297412kbC++141.0kb2024-11-11 21:48:232024-11-11 21:48:24

Judging History

你现在查看的是最新测评结果

  • [2024-11-25 20:53:52]
  • hack成功,自动添加数据
  • (/hack/1258)
  • [2024-11-11 21:48:24]
  • 评测
  • 测评结果:WA
  • 用时:35ms
  • 内存:297412kb
  • [2024-11-11 21:48:23]
  • 提交

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'