1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int id, ch[N][26], ed[N]; char str[N]; void ins(char *s) { int p=0; for(int i=0;s[i];i++) { int j=s[i]-'a'; if(!ch[p][j])ch[p][j]=++id; p=ch[p][j]; } ed[p]++; } int query(char *s) { int p=0, ret=0; for(int i=0;s[i];i++) { int j=s[i]-'a'; if(!ch[p][j]) return ret; p=ch[p][j]; ret+=ed[p]; } return ret; } int main() { int n, m;scanf("%d%d", &n, &m); id=0;memset(ch, 0, sizeof(ch));memset(ed, 0, sizeof(ed)); for(int i=1;i<=n;i++) { scanf("%s", str); ins(str); } for(int i=1;i<=m;i++) { scanf("%s", str); printf("%d\n", query(str)); } return 0; }
- 1
信息
- ID
- 1281
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 224
- 已通过
- 64
- 上传者