POJ - 3630 一道简单的字典树
2011-10-26 13:35
239 查看
刷刷更健康...这道题掌握了字典树难度不大...关键是如何判断是否有串是某串的前缀~~...这个我是用个数组记住每个字符串末尾节点的位置~~做的时候是经过一个点就+1...最后只要判断所有的末尾节点是不是都为1~~~如果都为1当然就说明没有谁为谁的前缀字串~~反之就是有串是某串的前缀字串~~
Program:
Program:
#include<iostream> using namespace std; struct node { int s[11],k; }a[200001]; int t,n,len,judge[10001],g,i; char s[20]; bool f; void find(int h,int k) { if (k==len) return; a[h].k+=1; if (!a[h].s[s[k]-'0']) { g++; if (k==len-1) { a[g].k=1; judge[i]=g; } a[h].s[s[k]-'0']=g; } find(a[h].s[s[k]-'0'],k+1); return; } int main() { scanf("%d",&t); while (t--) { scanf("%d",&n); memset(a,0,sizeof(a)); memset(judge,0,sizeof(judge)); g=0; getchar(); for (i=1;i<=n;i++) { gets(s); len=strlen(s); find(0,0); } f=true; for (i=1;i<=n;i++) if (a[judge[i]].k!=1) f=false; if (f) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- poj 3630 Phone List( 简单字典树 )
- 【POJ 3630】Phone List(静态字典树)
- hdu 1671&&poj 3630 Phone List 【字典树】
- POJ 3630 Phone List(字典树)
- poj 3630 Phone List trie树—字典树 静态数组版!!!
- poj2001 http://poj.org/problem?id=2001 简单的字典树题目
- POJ 3630 Phone List/POJ 1056 【字典树】
- POJ---2945 Find the Clones[字典树-简单题(多例输入注意删除)]
- poj 3630 简单Trie树的应用
- POJ3630 字典树
- poj3630—Phone List(字典树)
- POJ 3630 Phone List(字典树,公共前缀问题)
- poj 3630(简单trie应用)
- poj3630 字典树
- POJ 3630 && HDU 1671 Phone list(静态字典树)
- Phone List POJ - 3630 (字典树或string)
- poj 3630 Phone List(字典树)
- HDU 1671 & POJ 3630 Phone List(字典树基础题)
- poj 3630 Phone List (字典树 +静态字典树)
- poj--3630--Phone List(字典树+前缀判断)