QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#252283 | #7780. Dark LaTeX vs. Light LaTeX | Lynkcat# | TL | 772ms | 199532kb | C++20 | 3.0kb | 2023-11-15 17:38:42 | 2023-11-15 17:38:43 |
Judging History
answer
#include<bits/stdc++.h>
#define poly vector<int>
#define IOS ios::sync_with_stdio(false)
#define ll long long
#define ull unsigned long long
#define mp make_pair
#define mt make_tuple
#define pa pair < int,int >
#define fi first
#define se second
#define inf 1e18
#define mod 998244353
#define sz(x) ((int)((x).size()))
#define int ll
// #define N
using namespace std;
const int B=10007;
int lcp[5005][5005];
int pre[5005];
void BellaKira()
{
int ans=0;
string s,t;
cin>>s>>t;
{
unordered_map<ull,int>Mp;
for (int i=0;i<t.size();i++)
{
ull x=0;
for (int j=i;j>=0;j--)
{
x=x*B+t[j];
Mp[x]++;
}
}
for (int i=sz(s)-1;i>=0;i--)
for (int j=sz(s)-1;j>=0;j--)
{
if (s[i]==s[j]) lcp[i][j]=lcp[i+1][j+1]+1;
}
for (int j=0;j<=sz(s);j++)
{
for (int i=0;i<=sz(s);i++)
pre[i]=0;
for (int i=0;i+1<j;i++)
if (lcp[i][j])
{
pre[i+1]++;
pre[i+lcp[i][j]+1]--;
}
for (int i=0;i<j;i++)
{
if (i) pre[i]=(pre[i]+pre[i-1]);
}
ull x=0;
for (int i=j-1;i>=0;i--)
{
int coef=1+pre[i];
x=x*B+s[i];
ans+=coef*Mp[x];
// cout<<i<<" "<<j-1<<" "<<coef<<" "<<Mp[x]<<endl;
}
}
}
for (int i=sz(s)-1;i>=0;i--)
for (int j=sz(s)-1;j>=0;j--) lcp[i][j]=0;
swap(s,t);
{
unordered_map<ull,int>Mp;
for (int i=0;i<t.size();i++)
{
ull x=0;
for (int j=i;j>=0;j--)
{
x=x*B+t[j];
Mp[x]++;
}
}
for (int i=sz(s)-1;i>=0;i--)
for (int j=sz(s)-1;j>=0;j--)
{
if (s[i]==s[j]) lcp[i][j]=lcp[i+1][j+1]+1;
}
for (int j=0;j<=sz(s);j++)
{
for (int i=0;i<=sz(s);i++)
pre[i]=0;
for (int i=0;i+1<j;i++)
if (lcp[i][j])
{
pre[i+1]++;
pre[i+lcp[i][j]+1]--;
}
for (int i=0;i<j;i++)
{
if (i) pre[i]=(pre[i]+pre[i-1]);
}
ull x=0;
for (int i=j-1;i>=0;i--)
{
int coef=pre[i];
x=x*B+s[i];
ans+=coef*Mp[x];
// cout<<i<<" "<<j-1<<" "<<coef<<" "<<Mp[x]<<endl;
}
}
}
cout<<ans<<'\n';
}
signed main()
{
IOS;
cin.tie(0);
int T=1;
while (T--)
{
BellaKira();
}
}
/*list:
1.mod 998244353 or 1e9+7 or ???
2.N
3.duipai shuju xingtai duoyidian
...
*/
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3536kb
input:
abab ab
output:
8
result:
ok 1 number(s): "8"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
abab abaaab
output:
29
result:
ok 1 number(s): "29"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
abcd abcde
output:
10
result:
ok 1 number(s): "10"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
aaba ba
output:
6
result:
ok 1 number(s): "6"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3968kb
input:
babababaaabbaabababbbaabbbababbaaaaa aaaabbaababbab
output:
1161
result:
ok 1 number(s): "1161"
Test #6:
score: 0
Accepted
time: 772ms
memory: 199532kb
input:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
78156256250000
result:
ok 1 number(s): "78156256250000"
Test #7:
score: 0
Accepted
time: 131ms
memory: 56272kb
input:
gzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggzggzgzggzggzgzggzgzggz...
output:
60716448
result:
ok 1 number(s): "60716448"
Test #8:
score: 0
Accepted
time: 126ms
memory: 55584kb
input:
mlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllmllmlmllmllmlmllmlmllmllmlmllmlmllml...
output:
60679828
result:
ok 1 number(s): "60679828"
Test #9:
score: -100
Time Limit Exceeded
input:
vbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvbbvbvbbvbbvbvbbvbvbbvb...