QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#735274#7780. Dark LaTeX vs. Light LaTeXHNO3ilML 15ms302884kbC++141.6kb2024-11-11 18:53:112024-11-11 18:53:11

Judging History

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

  • [2024-11-25 20:53:52]
  • hack成功,自动添加数据
  • (/hack/1258)
  • [2024-11-11 18:53:11]
  • 评测
  • 测评结果:ML
  • 用时:15ms
  • 内存:302884kb
  • [2024-11-11 18:53:11]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define db double
#define endl '\n'
#define lowbit(x) x&-x
#define intz(x,a) memset(x,a,sizeof(x));
const int N=5e3+5;
int lcp[N][N],lens,lent,dp[N][N],cnt[N][N],ct[N][N];long long sum[N][N];char s[N],t[N];
signed main(){
//	freopen("tst.out","r",stdin);
	scanf("%s%s",s+1,t+1);lens=strlen(s+1),lent=strlen(t+1);
	for(int j=lent;j;j--)
		for(int i=lens;i;i--)dp[i][j]=(s[i]==t[j]?dp[i+1][j+1]+1:0),cnt[i][dp[i][j]]++;
	for(int j=1;j<=lens;j++){
		for(int i=lens-j+1;i;i--)cnt[j][i]+=cnt[j][i+1];
		for(int i=j;i<=lens;i++)ct[j][i]=cnt[j][i-j+1];
	}
	for(int j=lens;j;j--)
		for(int i=j;i;i--)lcp[i][j]=(s[i]==s[j]?lcp[i+1][j+1]+1:0);
	for(int i=lens;i;i--)
		for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
	long long ans=0;
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
	swap(lens,lent);swap(s,t);intz(lcp,0);intz(cnt,0);intz(dp,0);
	for(int j=lent;j;j--)
		for(int i=lens;i;i--)dp[i][j]=(s[i]==t[j]?dp[i+1][j+1]+1:0),cnt[i][dp[i][j]]++;
	for(int j=1;j<=lens;j++){
		for(int i=lens-j+1;i;i--)cnt[j][i]+=cnt[j][i+1];
		for(int i=j;i<=lens;i++)ct[j][i]=cnt[j][i-j+1];
	}
	for(int j=lens;j;j--)
		for(int i=j;i;i--)lcp[i][j]=(s[i]==s[j]?lcp[i+1][j+1]+1:0);
	for(int i=lens;i;i--)
		for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens+1;j++)ans+=ct[i][j-1];
	cout<<ans;
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 15ms
memory: 299496kb

input:

abab
ab

output:

8

result:

ok 1 number(s): "8"

Test #2:

score: 0
Accepted
time: 8ms
memory: 299460kb

input:

abab
abaaab

output:

29

result:

ok 1 number(s): "29"

Test #3:

score: 0
Accepted
time: 8ms
memory: 302884kb

input:

abcd
abcde

output:

10

result:

ok 1 number(s): "10"

Test #4:

score: 0
Accepted
time: 4ms
memory: 300164kb

input:

aaba
ba

output:

6

result:

ok 1 number(s): "6"

Test #5:

score: 0
Accepted
time: 7ms
memory: 302704kb

input:

babababaaabbaabababbbaabbbababbaaaaa
aaaabbaababbab

output:

1161

result:

ok 1 number(s): "1161"

Test #6:

score: -100
Memory Limit Exceeded

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

78156256250000

result: