QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#666457#5311. Master of BothtselmegkhWA 222ms49252kbC++201.6kb2024-10-22 18:34:532024-10-22 18:34:55

Judging History

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

  • [2024-10-22 18:34:55]
  • 评测
  • 测评结果:WA
  • 用时:222ms
  • 内存:49252kb
  • [2024-10-22 18:34:53]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;
const int K = 26;

struct Vertex {
    int next[K];
    int lst = 0;
    int pt = 0;
    Vertex() {
        fill(begin(next), end(next), -1);
    }
};

vector<Vertex> t(1);
int cnt[K][K];
long long ans;

void add_string(string const& s){
    int v = 0;
    bool isPrefix = true;
    for(char ch : s){
        int c = ch - 'a';
        for(int j = 0; j < 26; j++){
            if(t[v].next[j] != -1){
                cnt[j][c] += t[t[v].next[j]].lst;
            }
        }
        if(t[v].next[c] == -1){
            isPrefix = false;
            t[v].next[c] = t.size();
            t.emplace_back();
        }
        t[v].lst++;
        t[v].pt++;
        v = t[v].next[c];
    }
    ans += t[v].pt;
    t[v].lst++;
}

void solve(){
    int n, q;
    cin >> n >> q;

    vector<string> s(n);
    for(int i = 0; i < n; i++){
        cin >> s[i];
        add_string(s[i]);
    }
    while(q--){
        string alphabet;
        cin >> alphabet;
        vector<int> pos(26, 0);

        for(int j = 0; j < 26; j++){
            pos[alphabet[j] - 'a'] = j;
        }
        long long res = 0;
        for(int i = 0; i < 26; i++){
            for(int j = 0; j < 26; j++){
                if(i == j)continue;
                if(pos[i] < pos[j]){
                    res += cnt[j][i];
                }
            }
        }
        cout << res + ans << '\n';
    }
    
}

int main() {
    int t = 1;
    // cin >> t;
    while(t--){
        solve();
    }        
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3584kb

input:

5 3
aac
oiputata
aaa
suikabudada
aba
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
aquickbrownfxjmpsvethlzydg

output:

4
3
4

result:

ok 3 number(s): "4 3 4"

Test #2:

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

input:

100 100
spkfvrbkfsspmnlgrdojwdqutknvzejorqxsmfgbfrhpxkrrtravhmxenjrzypkxounrbantpkaezlcnudjmwxpgqakfoxcmdjcygujdtpluovbisxmklkzzuuyziapzyrszcggjkzrwmtyolnbobubbezdwmumyzyhaogiiolictzjpxbyaamecytpnyzxlumxjkzyfavxlzdwtgrxtqcnddzfocznitlaxlpcceuelqlbmyzetlpaivxnuvuctsbjbaulmbmkangqahpdojqimvmcugjeczkgx...

output:

2368
2693
2179
2466
2435
2370
2604
2468
2335
2268
2686
2781
2538
2208
2386
2539
2728
2383
2248
2372
2446
2266
2290
2688
2602
2515
2634
2558
2598
2632
2763
2255
2557
2579
2367
2516
2676
2273
2429
2556
2576
2635
2422
2829
2362
2552
2377
2261
2603
2516
2298
2282
2520
2333
2505
2287
2261
2476
2791
2328
...

result:

ok 100 numbers

Test #3:

score: 0
Accepted
time: 85ms
memory: 49152kb

input:

500000 5
ru
x
tb
s
e
w
e
m
l
b
g
zr
jp
h
js
xk
fjwtk
wtkem
o
ev
a
a
x
sy
dh
y
kkdcxfr
hgq
j
k
xr
s
cvwbrlk
u
u
x
wtvgef
dzxsk
qv
gxl
g
m
rpl
ldp
q
lc
dk
g
k
im
o
yhn
z
a
knc
tyv
mz
ak
qdhq
c
niw
o
j
heu
w
g
e
kt
n
inqt
i
al
q
ebphky
sv
m
mry
oj
cl
j
r
sf
vpd
u
rio
sfkg
m
el
s
zs
g
o
e
njp
r
xczcm
gh...

output:

61908555824
61940608380
61883035862
61951203480
61924597894

result:

ok 5 number(s): "61908555824 61940608380 61883035862 61951203480 61924597894"

Test #4:

score: 0
Accepted
time: 222ms
memory: 49252kb

input:

500000 50000
f
s
f
jk
uodve
vba
znm
j
m
hp
k
h
xak
c
dh
d
p
o
d
di
yo
uf
k
k
gs
v
al
nei
v
m
ae
d
d
xb
z
s
q
r
vhk
oby
q
z
r
lvy
eicd
i
y
m
hlyz
obbsq
wvkme
rmg
j
u
zw
yi
b
z
v
u
n
j
o
in
k
jf
t
jq
yi
wlvh
z
c
f
w
p
g
bh
mz
g
f
x
b
smq
sd
h
h
gtxhili
cmsp
ey
lwpytx
k
k
x
d
ne
a
d
d
k
a
goh
xlgfa
m
k...

output:

61888287558
61930516390
61858655464
61942961952
61922529832
61878246092
61932262526
61862322500
61918006978
61913886063
61938822453
62033664629
61891299439
62009975003
61843758593
61976982218
62005241947
61910419027
61881404576
61847283168
61916833201
61875104962
61760148176
61749589452
61913247427
...

result:

ok 50000 numbers

Test #5:

score: -100
Wrong Answer
time: 220ms
memory: 20844kb

input:

500000 50000
c
c
aa
b
aba
cac
cb
bac
b
scaa
acc
b
aaab
a
b
bc
cac
a
aaaaacc
b
b
bba
b
cc
cac
a
a
caaab
ababac
c
c
a
babcc
a
b
a
ccbbbb
ca
sa
ab
a
ab
c
cc
b
ac
c
ma
c
bac
c
ba
cb
c
abbb
cc
ba
cc
b
a
ccc
bccb
b
acc
a
cc
ba
bab
c
a
c
cb
ca
ca
aa
b
ccca
ccb
bb
aabaac
bab
bba
ba
b
a
aa
ba
a
c
b
cac
b
bbc...

output:

18284794013
18270823495
18298276601
18288977880
18270336014
18283716739
18299312417
18293710737
18273414564
18241169714
18304359472
18300639186
18242692823
18290119444
18237059503
18242659074
18230243245
18243923059
18242927475
18244585565
18231202920
18260934634
18238508146
18302409557
18297051141
...

result:

wrong answer 1st numbers differ - expected: '56939499677', found: '18284794013'