CODEVS 4189 (前缀是否出现)
Posted lllaih
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CODEVS 4189 (前缀是否出现)相关的知识,希望对你有一定的参考价值。
题目链接:http://codevs.cn/problem/4189/
#include <iostream> #include <cstring> #include <cstdio> #define mem(a,b) memset(a,b,sizeof(a)); using namespace std; typedef long long ll; const int maxn = 500005; const ll INF = 0x3f3f3f3f; int tot,n,trie[maxn][26],sum[maxn]; bool vis[maxn],flag; void Insert(char *s,int rt) int len = strlen(s); for(int i = 0; i < len; i++) int k = s[i] -‘a‘; if(trie[rt][k] == 0) trie[rt][k] = ++tot; sum[trie[rt][k]]++; rt = trie[rt][k]; int Find(char *s,int rt) int len = strlen(s); for(int i = 0; i < len; i++) int k = s[i] -‘a‘; rt = trie[rt][k]; if(rt == 0) return false; return true; int main() tot = 0; int rt = 0; char s[105]; int n; cin >> n; for(int i = 1; i <= n; i++) cin >> s; Insert(s,rt); cin >> n; for(int i = 1; i <= n; i++) cin >> s; if(Find(s,rt)) cout << "YES" << endl; else cout << "NO" << endl; return 0;
以上是关于CODEVS 4189 (前缀是否出现)的主要内容,如果未能解决你的问题,请参考以下文章