QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#748824#7780. Dark LaTeX vs. Light LaTeXmonuiTL 834ms219832kbC++231.5kb2024-11-14 21:35:532024-11-14 21:35:53

Judging History

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

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

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define lowbit(x) x&(-x)
using ll=__int128;
const int N=5010;
const ll M=1e17+3;
string a,b;
unordered_map<int,int> st_a,st_b;
int na,nb;

void calc(string& s,int len,unordered_map<int,int>& st,int d){
    vector<vector<int>> op(N,vector<int>(N,0));
    vector<int> lst(N,0);
    for(int i=1;i<=len;i++){
        for(int j=len;j>i;j--){
        	lst[j]=0;
            if(s[i]!=s[j]) continue;
            if(s[i-1]==s[j-1]) lst[j]=lst[j-1]+1;
            op[i+1][j]-=1;
            op[i+1][max(j-lst[j]-1,i+1)]+=1;
        }
    }
    for(int i=1;i<=len;i++){
    	int res=0;
    	ll to=0;
        for(int j=i;j<=len;j++){
        	res+=op[i][j];
            int num=res+d;
            to=(to*31+s[j]-'a'+13)%M;
            if(num<=0) continue;
            st[to]+=num;
        }
    }
}

int getans(string& s,int len,unordered_map<int,int>& st){
    int res=0;
    for(int i=1;i<=len;i++){
    	ll to=0;
        for(int j=i;j<=len;j++){
			to=(to*31+s[j]-'a'+13)%M;
            res+=st[to];
        }
    }
    return res;
}

void solve(){
    cin>>a>>b;
    na=a.size(),nb=b.size();
    a="#"+a;b="#"+b;
    calc(a,na,st_a,1);
    calc(b,nb,st_b,0);
    int res=getans(a,na,st_b)+getans(b,nb,st_a);
    cout<<res<<endl;
}
signed main()
{
    ios::sync_with_stdio(0);cin.tie(0); 
    int t=1;
    // cin>>t;
    while(t--)
        solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 31ms
memory: 199944kb

input:

abab
ab

output:

8

result:

ok 1 number(s): "8"

Test #2:

score: 0
Accepted
time: 27ms
memory: 199936kb

input:

abab
abaaab

output:

29

result:

ok 1 number(s): "29"

Test #3:

score: 0
Accepted
time: 46ms
memory: 199872kb

input:

abcd
abcde

output:

10

result:

ok 1 number(s): "10"

Test #4:

score: 0
Accepted
time: 40ms
memory: 199876kb

input:

aaba
ba

output:

6

result:

ok 1 number(s): "6"

Test #5:

score: 0
Accepted
time: 43ms
memory: 199908kb

input:

babababaaabbaabababbbaabbbababbaaaaa
aaaabbaababbab

output:

1161

result:

ok 1 number(s): "1161"

Test #6:

score: 0
Accepted
time: 834ms
memory: 200264kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

78156256250000

result:

ok 1 number(s): "78156256250000"

Test #7:

score: 0
Accepted
time: 395ms
memory: 219832kb

input:

gzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggz...

output:

60716448

result:

ok 1 number(s): "60716448"

Test #8:

score: 0
Accepted
time: 362ms
memory: 219828kb

input:

mlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllml...

output:

60679828

result:

ok 1 number(s): "60679828"

Test #9:

score: -100
Time Limit Exceeded

input:

vbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvb...

output:


result: