QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#575438#3199. PasswordsChenJiarun12345AC ✓18ms5068kbC++142.2kb2024-09-19 14:20:552024-09-19 14:20:57

Judging History

This is the latest submission verdict.

  • [2024-09-19 14:20:57]
  • Judged
  • Verdict: AC
  • Time: 18ms
  • Memory: 5068kb
  • [2024-09-19 14:20:55]
  • Submitted

answer

/*
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f3f3f3f3f3f3f3f
#define For(i,l,r) for(register int i=(l);i<=(r);i++)
#define Rof(i,l,r) for(register int i=(l);i>=(r);i--)
#define bug cout<<"Ln:"<<__LINE__<<'\n'
bool MS;
struct ACAM{
	int cnt,tr[1005][26];bool ed[1005];
	void insert(char str[]){
		int len=strlen(str+1),p=0;
		For(i,1,len){
			int t=str[i]-'a';
			if(!tr[p][t]) tr[p][t]=++cnt;
			p=tr[p][t];
		}
		ed[p]=1;
	}
	int fail[1005];
	queue<int>q;
	void build(){
		fail[0]=0;
		For(i,0,25) if(tr[0][i]) fail[tr[0][i]]=0,q.push(tr[0][i]);
		while(!q.empty()){
			int u=q.front();q.pop();
			ed[u]|=ed[fail[u]];
			For(i,0,25){
				if(tr[u][i]) fail[tr[u][i]]=tr[fail[u]][i],q.push(tr[u][i]);
				else tr[u][i]=tr[fail[u]][i];
			}
		}
	}
}acam;
const int mod=1000003;
int nl,nr,m,f[25][1005][2][2][2];
char s[25];
void upd(int &x,int y){
	x=(x+y)%mod;
}
bool MT;
signed main(){
	// freopen(".in","r",stdin);
	// freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	// cerr<<"Memory: "<<1.0*(&MS-&MT)/1048576<<"MiB\n";
	cin>>nl>>nr;
	cin>>m;
	For(i,1,m){
		cin>>(s+1);
		acam.insert(s);
	}
	acam.build();
	assert(acam.cnt<1005);
	f[0][0][0][0][0]=1;
	For(i,0,nr-1){
		For(j,0,acam.cnt) if(!acam.ed[j]){
			For(a,0,1){
				For(b,0,1){
					For(c,0,1){
						For(k,0,25){
							upd(f[i+1][acam.tr[j][k]][1][b][c],f[i][j][a][b][c]);
							upd(f[i+1][acam.tr[j][k]][a][1][c],f[i][j][a][b][c]);
						}
						For(k,0,9){
							if(k==0) upd(f[i+1][acam.tr[j]['o'-'a']][a][b][1],f[i][j][a][b][c]);
							else if(k==1) upd(f[i+1][acam.tr[j]['i'-'a']][a][b][1],f[i][j][a][b][c]);
							else if(k==3) upd(f[i+1][acam.tr[j]['e'-'a']][a][b][1],f[i][j][a][b][c]);
							else if(k==5) upd(f[i+1][acam.tr[j]['s'-'a']][a][b][1],f[i][j][a][b][c]);
							else if(k==7) upd(f[i+1][acam.tr[j]['t'-'a']][a][b][1],f[i][j][a][b][c]);
							else upd(f[i+1][0][a][b][1],f[i][j][a][b][c]);
						}
					}
				}
			}
		}
	}
	int ans=0;
	For(i,nl,nr){
		For(j,0,acam.cnt) if(!acam.ed[j]){
			upd(ans,f[i][j][1][1][1]);
		}
	}
	cout<<ans<<'\n';
	return 0;
}
/*
3 5
9
swerc
icpc
fbi
cia
bio
z
hi
no
yes
*/

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3696kb

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: 3616kb

input:

3 5
1
a

output:

223848

result:

ok single line: '223848'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3692kb

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: 0ms
memory: 3684kb

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: 3704kb

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: 1ms
memory: 3640kb

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: 0ms
memory: 3904kb

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: 0ms
memory: 3932kb

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: 0ms
memory: 3756kb

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: 1ms
memory: 3724kb

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: 4ms
memory: 3968kb

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: 2ms
memory: 4028kb

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: 9ms
memory: 4484kb

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: 9ms
memory: 4328kb

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: 3624kb

input:

3 20
0

output:

998674

result:

ok single line: '998674'

Test #17:

score: 0
Accepted
time: 18ms
memory: 4732kb

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: 18ms
memory: 5068kb

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'