QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#718414#6516. New but Nostalgic Problemmoonshine_sakeAC ✓47ms254536kbC++173.6kb2024-11-06 20:26:552024-11-06 20:26:56

Judging History

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

  • [2024-11-06 20:26:56]
  • 评测
  • 测评结果:AC
  • 用时:47ms
  • 内存:254536kb
  • [2024-11-06 20:26:55]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define debug(p) for (auto i : p)cerr << i << " "; cerr << endl;
#define debugs(p) for (auto i : p)cerr << i.first << " " << i.second << endl;
typedef pair<int, int> pll;
string yes = "YES";
string no = "NO";
constexpr int N = 1e6 + 7;
struct ACAM {
    int tr[N][26], cnt[N], ne[N], depth[N];//trie树存储,模式串叶子结点计数, 失配指针,字符串长度
    int tot = 0;
    int idx[N];//记录某个叶子节点对应的匹配串编号
    int from[N];//记录重复匹配串的映射节点
    int deg[N];//拓扑排序记录每个节点入度

    void ins(string s, int pos) //给定多个匹配串构建trie
    {
        int p = 0;
        for (int i = 0; i < s.size(); i++) {
            int u = s[i] - 'a';
            if (!tr[p][u])
                tr[p][u] = ++tot;  
            p = tr[p][u];
            cnt[p]++;
        }
        if(!idx[p])idx[p] = pos;
        from[pos] = idx[p];
    }
    void init(int n)
    {
        tot = 0;
        for (int i = 0; i <= n; i++)
        {
            for (int j = 0; j < 26; j++)tr[i][j] = 0;
            ne[i] = cnt[i] = idx[i] = depth[i] = from[i] = deg[i] = 0;
        }
    }
    void build() {
        queue<int>q;
        for (int i = 0; i < 26; i++) {
            if (tr[0][i])
            {
                q.push(tr[0][i]);
                depth[tr[0][i]] = 1;
            }
        }
        while (q.size()) {
            int p = q.front();
            q.pop();
            //枚举每个可能存在的子节点,如果存在就添加虚边并加入队列,不存在就维护节点
            for (int i = 0; i < 26; i++) {
                int s = tr[p][i];
                if (tr[p][i]) {
                    q.push(s);
                    depth[s] = depth[p] + 1;
                    ne[s] = tr[ne[p]][i];//子节点的虚边连向父节点虚边指向的另一个父节点的子节点
                    deg[ne[s]]++;
                }
                else
                    tr[p][i] = tr[ne[p]][i];
            }
        }
    }
}ac;
string ans;
void dfs(int p, int k)
{
    int tot = 0;
    if(k <= 0)return;
    for (int i = 0; i < 26; i++)
    {
        if(ac.tr[p][i])tot++;
    }
    if(k <= tot)return;
    int cnt = 0, sub = tot - 1;
    for (int i = 0; i < 26; i++)
    {
        if(!ac.tr[p][i])continue;
        cnt += ac.cnt[ac.tr[p][i]] - 1;
        
        if(tot + cnt >= k && ac.cnt[ac.tr[p][i]] >= 2)
        {
            if(k - sub >= 0)
            {
                ans.push_back('a' + i);
                p = ac.tr[p][i];
                // int mx = 0;
                // for (int j = 0; j < 26; j++)mx += ac.cnt[ac.tr[p][j]];
                if(ac.idx[p])sub++;
                dfs(p, k - sub);
            }
            return;
        }
        sub += ac.cnt[ac.tr[p][i]] - 1;
    }
}
int T;
void solve()
{
    int n, k;
    cin >> n >> k;
    vector<string>s(n + 1);
    for (int i = 1; i <= n; i++)
    {
        cin >> s[i];
        // if(T == 25000 - 3236)
        // {
        //     cout << s[i] << ";";
        // }
        ac.ins(s[i], i);
    }
    // if(T == 25000 - 3236)cout << k << ".";
    int p = 0;
    dfs(p, k);
    if(ans.empty())cout << "EMPTY" << endl;
    else cout << ans << endl;
    ac.init(ac.tot);
    ans.clear();
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    // 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: 2ms
memory: 16052kb

input:

2
5 3
gdcpc
gdcpcpcp
suasua
suas
sususua
3 3
a
b
c

output:

gdcpc
EMPTY

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 9ms
memory: 15920kb

input:

20000
5 3
apveofpr
irdbqk
rnionnjjrk
wrpihlsw
ofylfsriof
5 4
iiltghqg
kybhogptqf
jfnmqxzrdq
rpztcluq
tzmnrcjae
5 5
ysp
vujmkkcutl
ksawqeiiaf
waukilaq
wmlsutlued
5 3
pikybt
yiqmqvtjeq
tyrsoihf
vnvjrxpus
cuubpacubb
5 2
rihuvikhg
twrsuoervz
ukiekoohw
eysqgndpf
sxswpeqtaf
5 5
vxzhicbp
nvtdbgqal
jilppvpt...

output:

EMPTY
EMPTY
w
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
o
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
t
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
w
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPT...

result:

ok 20000 lines

Test #3:

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

input:

1000
10 9
wkpbdhbivgksnwvnqnynzrmhowmpbbtswjydwidifwuquenplmozlqnkxqefckyzcughrdbturdzsxrcggpzrtrvlewigox
qbxgxomnfarjtvfbxbabtpmhnuwvbxfpwpkjuzjsehofemfzxglvvthzgkzukwmlyfhajchvphdjfqmfubwwpdtdbjpfvk
qrsovcdbphsndcmjwxjhmktwvgakzqewnoymumlawlmmgjmbpivccldrrfgspjypwosdqgpyqnxhaukwycqntuxglbdwf
fbdtn...

output:

q
EMPTY
EMPTY
EMPTY
h
EMPTY
EMPTY
EMPTY
h
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
v
b
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
t
EMPTY
EMPTY
e
EMPTY
b
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
b
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
v
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPT...

result:

ok 1000 lines

Test #4:

score: 0
Accepted
time: 17ms
memory: 15856kb

input:

25000
10 8
phl
vwel
ufme
dtsf
con
giby
xlma
dhke
zjir
itws
9 5
qtgd
wcqj
ixmz
swv
myxo
eqq
yxiq
uvb
spbw
10 7
xrkp
ze
smt
nq
ijhw
lmxf
kcgs
hi
qwmq
hilw
8 7
rlf
taaq
hmdu
thex
dbb
spcp
awyn
khdu
10 10
voxx
tqv
ehtx
xctk
zamh
zua
rbyg
bmeh
wmiv
cmw
9 6
bzq
ayz
cdna
myi
rdeu
gtdo
ycy
sjec
ystp
9 4
tix...

output:

EMPTY
EMPTY
EMPTY
EMPTY
z
EMPTY
EMPTY
s
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
y
EMPTY
EMPTY
a
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
m
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
g
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
j
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
j
EMPTY
t
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
...

result:

ok 25000 lines

Test #5:

score: 0
Accepted
time: 19ms
memory: 196060kb

input:

1
898 840
fdefauodwerznqpzszernrspbndmdfkjrbazmworfvlfbxwcprhxenouzxirrhqtwgiwdcejexotjetwgzqlqtndynfzwmfakfeojtxwrvekebmudrouskcgpzncnsxwajwaoclvqnaycgaaktqctsmbnosbajzryxpxzxuwnzpvmyfobgogbllqyxplageeufjjnrlhairtetyridmhthpplivokbinfmblugrzkcyxuhewtyoxkfzmyhgsbafmgqazoqollibsxlprjneeqursjuomypstme...

output:

y

result:

ok single line: 'y'

Test #6:

score: 0
Accepted
time: 11ms
memory: 42508kb

input:

1
666416 645656
d
j
s
g
s
b
w
x
b
z
v
m
c
o
h
a
j
v
v
l
y
i
l
n
g
x
u
q
d
m
z
q
k
n
l
c
v
n
q
b
y
g
t
c
q
i
k
b
z
i
h
e
c
b
h
e
v
a
n
c
n
z
b
g
c
n
m
f
x
q
y
b
l
h
r
a
i
g
v
e
q
k
u
e
z
q
a
a
a
c
g
d
c
d
f
n
i
d
l
d
w
i
h
p
b
a
u
n
i
e
z
l
v
l
a
y
t
k
j
y
z
r
f
c
o
f
x
w
p
y
q
a
j
v
j
n
t
f
m
j
j
z
...

output:

z

result:

ok single line: 'z'

Test #7:

score: 0
Accepted
time: 24ms
memory: 254536kb

input:

1
10 8
tahlarajyplchghlbufhsanuvbmsafotmdanvtsltpignbmcydrndrjteyjjphxzxjcsqnszqxhmcyvujrfdispekvglqxyeflsvdssvmrkfjvyydknxjcyekcstfzgpnznkupdsaesmhakazgshvycwwctjnwxhhdokcujhwnqrqyqnvfikaofgwyxfcphgpkayzzwgcmceycippdyvibeqqibhemzeucugdtwlljqejewmapdajieanbukrpeqfzlcqblbkbemvcvkdnwshnbhymextgudifvju...

output:

tahlarajyplchghlbufhsanuvbmsafotmdanvtsltpignbmcydrndrjteyjjphxzxjcsqnszqxhmcyvujrfdispekvglqxyeflsvdssvmrkfjvyydknxjcyekcstfzgpnznkupdsaesmhakazgshvycwwctjnwxhhdokcujhwnqrqyqnvfikaofgwyxfcphgpkayzzwgcmceycippdyvibeqqibhemzeucugdtwlljqejewmapdajieanbukrpeqfzlcqblbkbemvcvkdnwshnbhymextgudifvjupdzdlne...

result:

ok single line: 'tahlarajyplchghlbufhsanuvbmsaf...zlcmnrtuhonflpulivygwfecgknnhvx'

Test #8:

score: 0
Accepted
time: 35ms
memory: 191604kb

input:

1
10 3
fbggdpqikbolemnowgfpwwouvbmhhxhecicbinhjesduugcuztgbjleluktdtbpcjfrwowpjfnkutjiffhdgygavviinleqwungdnykbnhrnccqnzbtaaouommlictujvlytueosbalqanancqjojunivkmzbhnggvraxlyowgdovaogsqdzxutwmcqwqrawlnxagzztmsxvrmhsrybddgtpboflhbbojoiolrhmhrvgyxuputssivbrlsdxvwbraxxtgugamtcorgeiazpvomjlkefldsvntaxpf...

output:

fbggdpqikbolemnowgfpwwouvbmhhxhecicbinhjesduugcuztgbjleluktdtbpcjfrwowpjfnkutjiffhdgygavviinleqwungdnykbnhrnccqnzbtaaouommlictujvlytueosbalqanancqjojunivkmzbhnggvraxlyowgdovaogsqdzxutwmcqwqrawlnxagzztmsxvrmhsrybddgtpboflhbbojoiolrhmhrvgyxuputssivbrlsdxvwbraxxtgugamtcorgeiazpvomjlkefldsvntaxpfaxlmbsj...

result:

ok single line: 'fbggdpqikbolemnowgfpwwouvbmhhx...wwjgvkuxmlyqdleytyumnytyslycfmz'

Test #9:

score: 0
Accepted
time: 37ms
memory: 141236kb

input:

1
100 64
bqrjaovelwrainyujustjcnoyqpyeuqtpwbgafxsdcmjqbgbrqkzbwejfhxswzqjjibagmdkasztqqhxsubyliuwzetglnccigmzrhxrmrrptvywyavwpkqqsyhyuhdtstkqzlqbzvpacuevwrpinfzubzjgj
bqrjaovelwrainyujustjcnoyqpyeuqfwuhsdtwgclvkdqobrrofezdyylsoddrsaxewflgjfmzreabpqstcfdmlkcfkhriuwkqfcodelppbuxxqxpanwsewtrnccauewokmq...

output:

bqrjaovelwrainyujustjcnoyqpyeuqfwuhsdtwgclvkdqobrrofezdyylsoddrsaxewflgjfmzreabpqstcfdmlkcfkhriuwkqfcodelppbuxxqxpanwsewtrnccauewokmqqahhykfsawtiatqczizqtmabdxqotpzhufebenhmnmbkavtbaqkpjloblntpbjhazyjtkakpeydymjnhgfsojzzucjvehkuvnefhkytpaasskzteisyylpukgkerhneqjqjkkqkigljadrneojmeyebyissomxlopckhtqz...

result:

ok single line: 'bqrjaovelwrainyujustjcnoyqpyeu...ulctwnloovccolzzlgjbonxkmtsflyq'

Test #10:

score: 0
Accepted
time: 23ms
memory: 143160kb

input:

1
1000 655
xrivmcvikmllrgissoqginwxkoqyxywrvspoagwvuycscxxldlmrszeuiiqzbcvkyvcogtqagprfubjza
xrivmcvikmllrgissoqginwxkoqyxwsgqbhhyygxeboxmuseokzosgqwekpchzsatkqlfiffshydwxtetdvwksuotvzaeosixlrlnoqdidbtocqkfwinselyycwpyxwywucccqorepmqsrncceebgbtygqrtviddhsqzpxauobucvondytzflgphhqgxkyaoihvvrqrvkbbleyn...

output:

xrivmcvikmllrgissoqginwxkoqyxwsgqbhhyygxeboxmuseokzosgqwekpchzsatkqlfiffshydwxtetdvwksuotvzaeosixlrlnoqdidbtocqkfwinselyycwpyxwywucccqorepmqsrncceebgbtwiulbxpgqmqazceacggpluxdaxnjcrvcfxzthnkvjegomnbsmbfksetqxuxukwooizgrmgupxlnspeovfiuqyndkkgrzjwxxvpjopmjhknuavonvknpcxwlcjnvrdrvvqxinzktygkkjdhdoewkwx...

result:

ok single line: 'xrivmcvikmllrgissoqginwxkoqyxw...vsirnpcffpggcsscctonqrzhktybdfd'

Test #11:

score: 0
Accepted
time: 47ms
memory: 115652kb

input:

1
100000 60101
wbpwp
wbtpv
y
wbmwmw
wk
wbi
wpr
wbmxw
wms
ttch
x
z
wld
wbmyu
e
wbmy
ywa
ws
yw
wv
wbq
ya
x
wx
zp
yl
wt
x
wbddy
wbwu
y
j
x
wbsvn
x
y
y
fwf
wc
yf
z
wcz
ys
wt
z
y
xke
zy
wbt
wbmwmvnoku
wbu
wbpikxn
wbmx
z
x
wbr
zqt
wbf
wbq
wr
y
z
ye
x
y
wtt
ys
wam
z
z
yd
wbmwzjdzk
y
z
z
wbpb
wbtua
z
z
x
z
...

output:

x

result:

ok single line: 'x'

Test #12:

score: 0
Accepted
time: 35ms
memory: 254504kb

input:

1
15 3
accbbabccbbbaacaaabaacbacccbabaacbcbbaacbcabcbcabbbaabbbacaccbcacacbacbbbccbacaaabbaacbacbaacbcbbaaccbcbccbaabcbaacaccbbbccbbbccccbbcacacabaabccacccbcabacbbbbacbcaaababbbaacaababccbcacabcbaacccaaabbbcbcbcaaacabaacaabacbcbbccaabaccbbcbabcbcbabaabbbbabbcaacacbbcbabbabccabcbbbcbbbbcbaabcbcbacaba...

output:

EMPTY

result:

ok single line: 'EMPTY'

Test #13:

score: 0
Accepted
time: 26ms
memory: 43504kb

input:

1
300005 2
dei
ytd
scz
rkd
csj
vhk
spe
vmf
dep
dhi
afl
vmyl
xfg
nno
lgg
gexx
myx
dhl
ytk
bdo
sna
znd
xkm
opt
lwm
ewr
nsdtw
pbx
rqy
dplgd
znt
sbw
lga
kvm
xfe
ewb
dpz
lyk
spo
ese
dhb
lcw
jcb
dhu
poh
lzw
kybca
ytw
sbez
eyx
pfv
sblv
gew
hcq
yvi
spy
ewn
spb
znx
xzn
klj
mna
klp
deuw
ugv
igu
sbna
yjli
lwv
...

output:

EMPTY

result:

ok single line: 'EMPTY'

Test #14:

score: 0
Accepted
time: 39ms
memory: 213972kb

input:

1
8 2
aljyvnpjccrahfrixfoayvhxhwovfhsrjubibgwlxyhoryqxqlqbbpmszyogtslzmddmwkzwhjvnazabmzqeridgsukgosptmmbemzdfaezqiqedslcjkrlhjikiyzymeulnzxpnhhpbqnbdoqybnsbhesbgqbwfwyuggfnmeiceupezyjtzxhfspwrxnynxbeizewzejejkdfenecqhymgrvdgehzvahevwasmuboqwvblgbahyykskhiqtegqqylhknpbxxspyupyjufonsatqroxunkzenqoagq...

output:

EMPTY

result:

ok single line: 'EMPTY'

Test #15:

score: 0
Accepted
time: 35ms
memory: 243640kb

input:

1
10 5
badcbbacebabaaaaedeebfddecfcdfaccdeccdaffeaddafebdbedacabebbdacffdfeefebaabcbcafafbedacfbcadacfbeabafbeafdeacbdcfafcdfbbacbcbcbedecaedffceeccdfccdebaeeabfccbfdbebacfcebcebfafcfefaddfcacadccdfcfcefebbecdebadabffffecfcdababaddeeddfeccbbffdfabddaedeebcacbadbaadfaebaaaeecadfadbdadcdbdbbcbbfdeacdf...

output:

EMPTY

result:

ok single line: 'EMPTY'

Test #16:

score: 0
Accepted
time: 35ms
memory: 193856kb

input:

1
1005 796
fcfacbaaedfebebafefcaddfcbdeaeadcefdcebaabefbcfcaeddeebabaacbabdadaacfdaafdeebccfcbbffbecebfaaebdbbbbfcdadacfdababacaaacfdfcbdfeefeffbffadffcbbedfebdeefdeeeedcebeaecdbccdecdaefcfaccbabcaebdddffefeedeeafebaceafcdbadeaddcdfeaddafaaeccddbadefadafeebeccbfbceffaaddfbbbacfdacbeadcbeedcdfbecdfab...

output:

fbdfcffefdfefdabbbaaabbbdadbaecbbbfdaeaaefadaaeaacdaeecacfeccccddbedfdacaacdbdcdcaacecbbaabdccadfafdbdbdadbebfaafaeaaaacdecefdecefccacedeabcceabcfbcdeefbcabeddaeedbdaedacbeebaccbefddcdfcbaeaddfdfadadfadcbebccfbbbdbadcecfaceeefcfaebdedebdefdfaeefcedcffaeebcecbffacdcfcefefadaafbfdbadecefbfbfdceebbfcaff

result:

ok single line: 'fbdfcffefdfefdabbbaaabbbdadbae...fadaafbfdbadecefbfbfdceebbfcaff'

Test #17:

score: 0
Accepted
time: 35ms
memory: 193832kb

input:

1
1005 23
ecdafdebadceaebcadfaddbadfcbffbfaafdefecbfbceefaeeccabdaefefddfdccbcbeaeeefdedbadfcacedfabefeabcfdfcfadddadfeeeefcfeedcdcffeaedaffcdabecaecacaebddeaabcaabcebffeecafccdadacbbecbefedeefbebddcbadfdffdfabacddcdefeebddaddfdebafeffdeecaaedafebaceedfacadcdfcbdeafaaeeefcedcfdebfcbaddbdaefceaeafdca...

output:

adbcdacebaebdabbecbfdaebffefcfeaeafdaefefcffcbeeafaeebcfeddfaaaeecbabdbebeeaffebaebbfeeeafbfbfcacbdabbcafcecadbdcdccdddabaeeaacbcdfcbddbccdcaeaeeedcfefacddcbffcefbedabddddfaaffabffcbdbeafaceaaaadabeebbdedcbcbaceffcfdcfafbaeedaabcfabecfecacecdffccbaefabebceedcaadabcfbdbaeabfdccbbbeacefedbbcfbedfddbefae

result:

ok single line: 'adbcdacebaebdabbecbfdaebffefcf...abfdccbbbeacefedbbcfbedfddbefae'

Test #18:

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

input:

1
7 2
bebadebdcebccacabcabeebeebddebcaeceeebeeeadcaccecbccbeecbacbabbedcebdecebaacbedecdbdadcdbeacbabacbdaccbeacaaedeecbadecdabcaaeeecceebeaddbedeeeedbabbdebeddaabcaeeeaeeaeedcbbbbbdabbbdebaaaedaedcbabdceadcdbaaabdecdeabcbbdcbdaceacaddabbedbcadaeaeeedaaedcbeeebebcbceabecdbbcebadadcecddbbdeecbcdbedbb...

output:

EMPTY

result:

ok single line: 'EMPTY'