Peter_Matthew的博客

Trie树,字典树

2019-01-14

本文共162字,大约需要阅读1分钟。

代码如下:
(Luogu P2580 于是他错误的点名开始了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int son[N][26],n,m,len,tot;
char s[N];
bool tag[N],vis[N];
void insert()
{
int now=0;
for(int i=1;i<=len;i++)
{
if(!son[now][s[i]-'a'])
son[now][s[i]-'a']=++tot;
now=son[now][s[i]-'a'];
}
tag[now]=1;
}
int find()
{
int x=0;
for(int i=1;i<=len;i++)
{
if(!son[now][s[i]-'a'])
return 0;
now=son[now][s[i]-'a'];
}
if(!tag[now])
return 0;
if(vis[now])
return 1;
vis[now]=1;
return 2;
}

知识共享许可协议

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

标签: 字符串
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏