NC15157. 小H和密码
描述
输入描述
第1行,三个整数N,M,Q
第2~N+1行,每行一个长度为M的字符串,依次表示每个转盘上的字符
第N+2~N+Q+1行,每行一个长度不超过10000的字符串,表示小H猜的密码
2≤N,Q≤300,2≤M≤27,同一个转盘上每种字符最多出现一次
输出描述
输出Q行,每行都是YES或NO,依次表示小H猜的每个字符串能否被表示出
示例1
输入:
3 2 3 a# ab bc aa bb ba
输出:
NO YES NO
C++11(clang++ 3.9) 解法, 执行用时: 13ms, 内存消耗: 864K, 提交时间: 2018-02-23 19:12:59
#include <bits/stdc++.h> using namespace std; int n,m,q,b[305][256]; char a[305][30],s[10010]; void work() { scanf("%d %d %d",&n,&m,&q); for (int i=1; i<=n; i++) { scanf("%s",a[i]+1); for (int j=1; j<=m; j++) b[i][int(a[i][j])]=1; } for (int i=1,j,len; i<=q; i++) { scanf("%s",s+1),len=strlen(s+1),j=1; for (int k=1; k<=n&&j<=len; k++) if (b[k][int(s[j])]) j++; puts(j>len?"YES":"NO"); } } int main() { work(); return 0; }