Submission #68563178
Source Code Expand
#include <bits/stdc++.h>
//#include <windows.h>
//taskkill /f /im 未命名1.exe
#define ED cerr<<endl;
#define TS cerr<<"I AK IOI"<<endl;
#define cr(x) cerr<<x<<endl;
#define cr2(x,y) cerr<<x<<" "<<y<<endl;
#define cr3(x,y,z) cerr<<x<<" "<<y<<" "<<z<<endl;
#define cr4(x,y,z,w) cerr<<x<<" "<<y<<" "<<z<<" "<<w<<endl;
#define pr(a,l,r) for(int i=l;i<=r;++i) cerr<<a[i]<<' ';ED
#define popcnt __builtin_popcount
#define all(s) s.begin(),s.end()
#define bstring basic_string
//#define add(x,y) (x+=y)%=mod
#define pii pair<int,int>
#define epb emplace_back
#define pb push_back
#define mk make_pair
#define ins insert
#define fi first
#define se second
#define ll long long
#define ull unsigned long long
using namespace std;
const int N=105,M=(1<<8)+5,INF=2e9,mod=998244353;
int n,l;
int tr[N][26],ne[N],_ss[N],ss[N],idx=0;
void insert(char str[],int id) {
int p=0;
for(int i=0;str[i];++i) {
int to=str[i]-'a';
if(!tr[p][to]) tr[p][to]=++idx;
p=tr[p][to];
}
_ss[p]|=(1<<id);
}
queue<int> q;
void build_AC() {
for(int i=0;i<26;++i) {
if(tr[0][i]) q.push(tr[0][i]);
}
while(!q.empty()) {
int t=q.front();
q.pop();
for(int i=0;i<26;++i) {
int c=tr[t][i];
if(!c) tr[t][i]=tr[ne[t]][i];
else {
ne[c]=tr[ne[t]][i];
q.push(c);
}
}
}
for(int i=0;i<=idx;++i) {
int p=i,v=_ss[i];
while(p) {
v|=_ss[p];
p=ne[p];
}
ss[i]=v;
}
}
char s[12];
ll dp[N][N][M];
int main()
{
scanf("%d%d",&n,&l);
for(int i=0;i<n;++i) {
scanf("%s",s),insert(s,i);
}
build_AC(),dp[0][0][0]=1;
for(int i=1;i<=l;++i) {
for(int j=0;j<=idx;++j) {
for(int k=0;k<(1<<n);++k) {
for(int l=0;l<26;++l) {
int to=tr[j][l];
dp[i][to][k|ss[to]]=(dp[i][to][k|ss[to]]+dp[i-1][j][k])%mod;
}
}
}
}
int ans=0,all=(1<<n)-1;
for(int i=0;i<=idx;++i) {
ans=(ans+dp[l][i][all])%mod;
}
printf("%d\n",ans);
return 0;
}
Submission Info
| Submission Time |
|
| Task |
F - All Included |
| User |
Include_S_Z_C_ |
| Language |
C++ 17 (gcc 12.2) |
| Score |
550 |
| Code Size |
1955 Byte |
| Status |
AC |
| Exec Time |
187 ms |
| Memory |
20548 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:71:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
71 | scanf("%d%d",&n,&l);
| ~~~~~^~~~~~~~~~~~~~
Main.cpp:73:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
73 | scanf("%s",s),insert(s,i);
| ~~~~~^~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
550 / 550 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3736 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3784 KiB |
| 00_sample_02.txt |
AC |
7 ms |
7252 KiB |
| 01_test_00.txt |
AC |
99 ms |
12188 KiB |
| 01_test_01.txt |
AC |
151 ms |
16280 KiB |
| 01_test_02.txt |
AC |
137 ms |
14984 KiB |
| 01_test_03.txt |
AC |
95 ms |
12100 KiB |
| 01_test_04.txt |
AC |
168 ms |
18496 KiB |
| 01_test_05.txt |
AC |
171 ms |
18616 KiB |
| 01_test_06.txt |
AC |
111 ms |
14104 KiB |
| 01_test_07.txt |
AC |
169 ms |
19120 KiB |
| 01_test_08.txt |
AC |
172 ms |
19680 KiB |
| 01_test_09.txt |
AC |
90 ms |
13936 KiB |
| 01_test_10.txt |
AC |
142 ms |
18692 KiB |
| 01_test_11.txt |
AC |
152 ms |
20312 KiB |
| 01_test_12.txt |
AC |
138 ms |
15300 KiB |
| 01_test_13.txt |
AC |
158 ms |
16936 KiB |
| 01_test_14.txt |
AC |
164 ms |
18164 KiB |
| 01_test_15.txt |
AC |
182 ms |
19520 KiB |
| 01_test_16.txt |
AC |
163 ms |
18976 KiB |
| 01_test_17.txt |
AC |
178 ms |
19988 KiB |
| 01_test_18.txt |
AC |
135 ms |
19464 KiB |
| 01_test_19.txt |
AC |
158 ms |
20336 KiB |
| 01_test_20.txt |
AC |
67 ms |
9528 KiB |
| 01_test_21.txt |
AC |
85 ms |
10952 KiB |
| 01_test_22.txt |
AC |
73 ms |
10408 KiB |
| 01_test_23.txt |
AC |
106 ms |
13040 KiB |
| 01_test_24.txt |
AC |
72 ms |
10484 KiB |
| 01_test_25.txt |
AC |
84 ms |
11500 KiB |
| 01_test_26.txt |
AC |
52 ms |
9176 KiB |
| 01_test_27.txt |
AC |
78 ms |
12240 KiB |
| 01_test_28.txt |
AC |
1 ms |
3676 KiB |
| 01_test_29.txt |
AC |
2 ms |
3996 KiB |
| 01_test_30.txt |
AC |
24 ms |
6116 KiB |
| 01_test_31.txt |
AC |
187 ms |
20548 KiB |
| 01_test_32.txt |
AC |
39 ms |
7348 KiB |