}returnans; }intmain(){intn, m;scanf("%d %d", &n, &m);clear();//初始化for(inti=1; i<=n; i++){scanf("%s", s);insert();// 建立trie}for(inti=1; i<=m; i++){scanf("%s", s);printf("%d\n",find());// trie中查找前缀}return0; }...
int trie[MAX][26] , tot = 1 ; char str[MAX] ; int cnt[MAX] ; void insert(char *str){ int len = strlen(str) ; int p = 1 ; for(int k = 0 ; k<len ; k++ ){ int ch = str[k] -'a' ; if(!trie[p][ch] ) trie[p][ch] = ++tot ; p = trie[p][ch] ; } cn...
但用memset会超时,正确做法是用fill并且去掉第一次初始化(把初始化放结尾),这里开1e5能过是因为数据水了,6inttr[amn][60],ed[amn],tot,x,ans,len,rt;7voidinit(){8memset(tr,0,sizeoftr);///在2e5的情况下的正确做法是用fill,不然用memset会超时9memset(ed,...
CH1601、ACwing142 #include<bits/stdc++.h> usingnamespacestd; #define constintN=1e6; intn,m,num; strings; structNode{ intp; intson[26]; intflag; }tree[N+5]; voidbuild(){ intnow=0; for(inti=0;s[i];++i){ if(tree[now].son[s[i]-'a']==0...
Trie字典树 字典树(Trie)是一种空间换时间的数据结构,是一棵关于“字典”的树。主要用于统计、排序和保存大量的字符串。字典树是通过利用字符串的公共前缀来节约存储空间,因此字典树又叫前缀树。字典树是对于字典的一种存储方式。这个词典中的每 - 信息学奥赛于20240313