![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 65
night146
这个作者很懒,什么都没留下…
展开
-
poj 3630
<br />题意:给定一组电话号码,判断是否有一个号码是其他号码的前缀,如果是,输出YES,否则NO。<br />字典树,在insert的过程中同时判断,然后返回该值。<br />#include<iostream> #include<algorithm> using namespace std; struct Node { Node*next[10]; bool end; Node() { end=false; for(int i=0;i<10;i++) nex原创 2010-12-04 18:54:00 · 411 阅读 · 0 评论 -
poj 2001
题意:给定一组单词,然后问要怎样的字符串前缀来表示单词,才能没有歧义(要求前缀越短越好)很明显的一道字典树。我们在node节点里加多一个key值,用来表示当前节点出现了几次。然后每次搜一个单词的缩写时,我们从根节点开始搜,不断输出,知道发现该值为1(这种情况说明只有一个单词出现在这里)。代码如下:#include using namespace std; const int MAXN=26; char s[1010][40]; struct Node { Node*next[MAXN];原创 2010-12-03 00:36:00 · 578 阅读 · 0 评论 -
强连通分量模板
Tarjan算法void Tarjan(int u) { DFN[u]=LOW[u]=++index; instack[u]=true; stack[top++]=u; for(node*temp=edge[u];temp;temp=temp->next) { if(!DFN[temp->v]) { Tarjan(temp->v); LOW[u]=LOW[u]v]?LOW[u]:LOW[temp->v]; } else { if(i原创 2010-12-11 14:28:00 · 109 阅读 · 0 评论