QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#576247 | #3199. Passwords | SunsetGlow95 | AC ✓ | 63ms | 4392kb | C++14 | 2.1kb | 2024-09-19 19:36:55 | 2024-09-19 19:36:56 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int MXS = 1005;
const string FULC = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
const char CHS[] = "abcdefghijklmnopqrstuvwxyz24689";
const int CHST = 31;
const int MXN = 21;
const int DVS= 1e6 + 3;
int A, B, N, nxt[MXS][CHST], fail[MXS], ndsz(1), cnt[MXN][MXS][8], ans;
bool beend[MXS];
vector<int> son[MXS];
char str[MXS];
inline int id(char c) {
if (c >= 'A' && c <= 'Z') return id('a' + (c - 'A'));
if (c == '0') return id('o');
if (c == '1') return id('i');
if (c == '3') return id('e');
if (c == '5') return id('s');
if (c == '7') return id('t');
return find(CHS, CHS + CHST, c) - CHS;
}
void mark(int p, bool m) {
beend[p] = m = (m || beend[p]);
for (int q : son[p]) mark(q, m);
}
void build() {
static int que[MXS];
int qh(0), qt(0);
for (int i(0); i != CHST; ++i)
if (nxt[0][i]) que[qt++] = nxt[0][i], son[0].push_back(nxt[0][i]);
while (qh != qt) {
int c(que[qh++]);
for (int i(0); i != CHST; ++i) {
int &n = nxt[c][i];
if (n) {
fail[n] = nxt[fail[c]][i];
que[qt++] = n;
son[fail[n]].push_back(n);
} else {
n = nxt[fail[c]][i];
}
}
}
mark(0, beend[0]);
}
int main() {
cin >> A >> B >> N;
while (N--) {
cin >> str;
int p(0), len(strlen(str));
for (int i(0); i != len; ++i) {
int &q(nxt[p][id(str[i])]);
if (!q) q = ndsz++;
p = q;
}
beend[p] = true;
}
build();
cnt[0][0][0] = 1;
for (int i(0); i != B; ++i) {
for (int j(0); j != ndsz; ++j) {
for (int k(0); k != 8; ++k) {
for (char c : FULC) {
int nj(nxt[j][id(c)]);
if (beend[nj]) continue;
int nk(k);
if (c >= 'A' && c <= 'Z') nk |= 4;
if (c >= 'a' && c <= 'z') nk |= 2;
if (c >= '0' && c <= '9') nk |= 1;
cnt[i + 1][nj][nk] = (cnt[i + 1][nj][nk] + cnt[i][j][k]) % DVS;
}
}
}
}
for (int i(0); i != ndsz; ++i) {
for (int j(A); j <= B; ++j) ans = (ans + cnt[j][i][7]) % DVS;
}
cout << ans << endl;
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3612kb
input:
3 5 9 swerc icpc fbi cia bio z hi no yes
output:
607886
result:
ok single line: '607886'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
4 5 0
output:
887311
result:
ok single line: '887311'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
3 5 1 a
output:
223848
result:
ok single line: '223848'
Test #4:
score: 0
Accepted
time: 1ms
memory: 3652kb
input:
4 5 10 a c e g i k m o q s
output:
178702
result:
ok single line: '178702'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3624kb
input:
3 4 26 a b c d e f g h i j k l m n o p q r s t u v w x y z
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 1ms
memory: 3760kb
input:
3 5 8 fcup porto swerc ola hello no yes abc
output:
839906
result:
ok single line: '839906'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
3 5 10 attc tcag gtc gta aaaa ccaaa ttcg gacga aagcg cagd
output:
796623
result:
ok single line: '796623'
Test #8:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
3 5 12 a baz cbaz dcbaz hendb endb ndb b nn onno ayesb yes
output:
511313
result:
ok single line: '511313'
Test #9:
score: 0
Accepted
time: 2ms
memory: 3676kb
input:
4 6 50 hph h pp hhphpp p ph hh hhpp hpphhp hhp ppphp pph pppp hphph phhphh hpph hphphp phphp phphh hhh pphp phhh pphh ppphh phphpp phh hpphhh hhhh pphph phpp phph hhhhph hpphh hp hpp pphpp hhhp phhp hhph ppph hppph phhhh ppppp hppp hhphph hphphh ppp hhhpph hpppp hppphp
output:
344974
result:
ok single line: '344974'
Test #10:
score: 0
Accepted
time: 3ms
memory: 3744kb
input:
3 6 50 wqog sjqr fcbqax y xpwwi j gklgnc bmhark qgaj uvfpwz hi nallwx obms oigkq uehl r fq uqe rbhbt luzt jxyu fgvrk s gidv jlagzj cyshm ixjxu vkhjh ibbw k zq b knav ayxeqm rncdp kzqdww cdkkw fjl hy l qsakh bgju yzx sf emuc lq wcaba wla yal e
output:
188830
result:
ok single line: '188830'
Test #11:
score: 0
Accepted
time: 3ms
memory: 3748kb
input:
3 10 25 axaxxx txrj tt tttaxjr xxxrtj xttarxxxtx xaxjr r jrrjrxjr aarajar txt x rt xatxt xttj xjja xra jxt ra taaxra aj rjr xxaxaaj xxttrjxa xxtajx
output:
687381
result:
ok single line: '687381'
Test #12:
score: 0
Accepted
time: 14ms
memory: 3896kb
input:
3 15 35 vxkqvdexdx zxvee mvozimqezvxqoe qev vxiovmmdxq xozzzm iqexzoxqievxze deezqqdkek zvzodz veizidqkemvziox zmzidxidezve koxdvdm ozzmii xvedxqmm dqziexoe qdmo dokieiodoqzdzix dke odqo imeemxvexxzov veeixmvdq vdveoqv ixmezo dqoeexizokemovo dddzeokm ozizmq izieei kexzkqmxoqkeo dkoez voqmoidimzvm qq...
output:
841929
result:
ok single line: '841929'
Test #13:
score: 0
Accepted
time: 13ms
memory: 3820kb
input:
10 15 45 aa rrraxrarrkakxaa kr rkrarxrkxrark kkkakarxrr rrkakarxrr axxxaxakkkxxkrk aaxrrkarxaxaxk xrxa aaaakxxkaraar rxrr axraaaaxxxxkxk xx rrxx xakkxrrx k rkarrxkkrx rara xxaarakax raraakkaaaxa kxxr kraxkaxaar x xkkkkxxkk rkkarr krxkkxkrxkxkxax araxkkrx arar aaa xaarkxarkxxk xrk krrkkxrxa xaxrkxrax...
output:
322551
result:
ok single line: '322551'
Test #14:
score: 0
Accepted
time: 26ms
memory: 3976kb
input:
18 18 50 pnn pnppplnlpnnllpplnn pllnpppl llpppplnppnnppnlp lln lplnnnlnplnn nlllppllplppplll lllppp plplplpllpppnllll ppplpnplnnpp ppnpnnn nnnnpnnppnnnnpn npllnppnnl pnpnl pnpll npll lnlnlpppplpnplpnp npnlnnlnllpplpp nlplpp nnppnllppllpnnll ppnlnlnplnllnl pnplplplllpnnp lpnnppnlppnnn ppnlpnp nplnpnp...
output:
389309
result:
ok single line: '389309'
Test #15:
score: 0
Accepted
time: 27ms
memory: 4164kb
input:
4 19 50 psmx wwpswpqqxymyytyx xp ywmasrmddtppwawdy yzsjgzjxazggprsnpa nngnqdgqpmpzjwt dznrtstpmrmyzzra qryzdgjpdxtpxypatzs zmyn wasyxsppqjpxzaradzw xmyngqtrgnpdnmywy spypzgmxq dxwrtnpg pqp jpqsxrqgxjrq dpwqs agzayxgqzwjwztr xpqtzxry rx njrr ajgwdwr ymjysjzgnqpwdxzjj pqazyxxryrmtzwmxn ms tqqrztnrrtzn...
output:
684686
result:
ok single line: '684686'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
3 20 0
output:
998674
result:
ok single line: '998674'
Test #17:
score: 0
Accepted
time: 44ms
memory: 4168kb
input:
3 20 50 gwogsnogslv dlwngqvnvvjod qvvwssloqlvjwld lgndnlwosjsdg qqjqsdolwddjs dnoojjwwnlodd sdsojlnvgwjqoslnno jddnnjwqvnjq solvgologqndgosjdgn vwdolvqsndnowoqwd qlwlogwqwndqlqsgjvvw onovnlwdowvwwn sddsvgonqnjlgd svsdlngdsndlqnqddjg dgvsngdsgq ggvdloloqsssnogv lsngqgodgwjosodq wsqvoolnqsjd joswdggll...
output:
507317
result:
ok single line: '507317'
Test #18:
score: 0
Accepted
time: 63ms
memory: 4392kb
input:
3 20 50 ploynntcvajxahnainmo vhgcnjxidsfbudfxozng vjsljvycjydraaxmfwec nkpkhtwpjqdserapecfw tufqdnmuodfrxlfafcia aerajvorujijmgebsvyt layevdwrdirqdbjiycgf suwgmhmnvqyhsilqyaok orundlohsmzncfbjifwg xallxiszxkxuahclwdjc uqnioqwsglsgdjjltvsn nkcgdhkhjeaocrncoyxu jcylizcagdlqfqyknmuc yqojefflbxbszhftdnj...
output:
17312
result:
ok single line: '17312'