标签:fine strlen mes 一个 nbsp iostream span style void
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #define maxn 2000010 using namespace std; int tot, n, m, rt; int trie[maxn][26], sum[400001]; char s[22]; //bool vis[maxn];查询整个单词用 void build() { int len = strlen(s); rt = 0; for(int i=0; i<len; i++) { int x=s[i]-‘a‘; if(trie[rt][x]==0)//现在插入的字母在之前同一节点处未出现过 { trie[rt][x]=++tot;//字母插入一个新的位置,否则不做处理 } //sum[trie[rt][x]]++; 前缀后移一个位置保存 rt=trie[rt][x];//为下个字母的插入做准备 } /*vis[rt]=true;标志该单词末位字母的尾结点,在查询整个单词时用到*/ } bool qp() { int len = strlen(s); rt = 0; for(int i=0; i<len; i++) { int x=s[i]-‘a‘; if(trie[rt][x]==0)return false;//以rt为头结点的x字母不存在,返回0 rt=trie[rt][x];//为查询下个字母做准备 } return true; //查询整个单词时,应该return vis[rt] , 查询次数时,应该return sum[rt] } int main() { tot=0; scanf("%d",&n); for(int i=1;i<=n;i++) { cin>>s; build(); } scanf("%d",&n); for(int i=1; i<=n; i++) { cin>>s; if(qp()) printf("YES\n"); else printf("NO\n"); } scanf("%d",&m); for(int i=1; i<=m; i++) { cin>> s; printf("%d",qp()); } return 0; }
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#define maxn 2000010using namespace std;int tot, n, m, rt;int trie[maxn][26], sum[400001];char s[22];//bool vis[maxn];查询整个单词用void build(){ int len = strlen(s); rt = 0; for(int i=0; i<len; i++) { int x=s[i]-‘a‘; if(trie[rt][x]==0)//现在插入的字母在之前同一节点处未出现过 { trie[rt][x]=++tot;//字母插入一个新的位置,否则不做处理 } //sum[trie[rt][x]]++; 前缀后移一个位置保存 rt=trie[rt][x];//为下个字母的插入做准备 } /*vis[rt]=true;标志该单词末位字母的尾结点,在查询整个单词时用到*/}bool qp(){ int len = strlen(s); rt = 0; for(int i=0; i<len; i++) { int x=s[i]-‘a‘; if(trie[rt][x]==0)return false;//以rt为头结点的x字母不存在,返回0 rt=trie[rt][x];//为查询下个字母做准备 } return true; //查询整个单词时,应该return vis[rt] , 查询次数时,应该return sum[rt]}int main(){ tot=0; scanf("%d",&n); for(int i=1;i<=n;i++) { cin>>s; build(); } scanf("%d",&n); for(int i=1; i<=n; i++) { cin>>s; if(qp()) printf("YES\n"); else printf("NO\n"); } scanf("%d",&m); for(int i=1; i<=m; i++) { cin>> s; printf("%d",qp());
}
return 0;}
标签:fine strlen mes 一个 nbsp iostream span style void
原文地址:https://www.cnblogs.com/WTSRUVF/p/9261070.html