1671 字典树
来源:互联网 发布:春光灿烂猪八戒 知乎 编辑:程序博客网 时间:2024/06/03 16:54
链表实现 328MS
#include <stdio.h>#define N 10struct Node{ Node *next[N]; bool vis;//字符串的结束 最后一个字符 void init() { vis=0; for (int i=0;i<N;i++) next[i]=NULL; }};bool build(char *s,Node *root){ Node *p=root;int x; for (;*s;s++) {x=*s-'0';if (*(s+1)==0 && p->next[x]!=NULL)// 1.当前串 是别的串的子串 只判断一次{return 1;} if (p->next[x]==NULL) { Node *q=new Node; q->init(); p->next[x]=q; }p=p->next[x]; if (p->vis) return 1;// 2.别的串是当前串的子串 每个节点都判断 } p->vis=1;//当前串的结束节点 return 0;}void end(Node *root)//释放内存{ for (int i=0;i<N;i++) { if (root->next[i]!=NULL) end(root->next[i]); delete root->next[i]; root->next[i]=NULL; }}int main (){ //freopen("1671.txt","r",stdin); int T,n; bool flag; char s[15]; scanf("%d",&T); while(T--) { scanf("%d",&n); flag=0; Node *root=new Node; root->init(); while(n--) { scanf("%s",s); if ( build(s,root) ) { flag=1; break; } } while(flag && n--) { scanf("%s",s); } if (flag) puts("NO"); else puts("YES"); end(root); }}
数组实现 62MS
#include <stdio.h>#include <string.h>#define N 10struct Node{int child[N];bool vis;//字符串的结束 最后一个字符void init(){vis=0;memset(child,-1,sizeof(child));}}t[100010];bool flag;int idx;void build(char *s){int x;int k=0;//currentfor (;*s;s++){x=*s-'0';if (*(s+1)==0 && t[k].child[x]!=-1)// 1.当前串 是别的串的子串 只判断一次{flag=0;return;}if (t[k].child[x]==-1){t[k].child[x]=++idx;t[idx].init();}k=t[k].child[x];if (t[k].vis)// 2.别的串是当前串的子串 每个节点都判断{flag=0;return;}}t[k].vis=1;}int main (){//freopen("1671.txt","r",stdin);int T,n;char s[15];scanf("%d",&T);while(T--){scanf("%d",&n);flag=1;idx=0;t[0].init();while(n--){scanf("%s",s);if (flag) build(s);}if (!flag) puts("NO");else puts("YES");}}
- 1671 字典树
- hdu 1671 字典树
- HDU 1671 字典树
- HDU 1671 字典树
- hdu 1671 字典树
- hdu 1671 字典树
- 1671字典树
- 字典树-HDOJ-1671
- HDU 1671 字典树
- HDU 1671 字典树
- hdu 1671 字典树
- HDOJ-1671-字典树
- HDU 1671 字典树
- HDU 1671 轻轻松松字典树
- hdu 1251 1671字典树
- hdu 1671 字典树 模板
- 杭电1671字典树
- HDU 1671 (Trie 字典树)
- 09秋数据库课程设计_小结_ 5
- GridView自定义数字分页功能
- 查询数据库没有主键的表名,并增加主键
- 09秋数据库课程设计_总结
- Jpeg 转bmp
- 1671 字典树
- 最长公共子序列(动态规划)
- 再论JAVA未来之路
- 字符串截取(倒数第二个分隔符开始)
- 查找IP位置 \ c# 通过经纬度 查询地址、区域信息
- Stack Exchange 的架构
- 驱动程序与应用程序之间的通信
- ExtJS学点皮毛(一)——工程的建立和项目的运行
- 此异常非彼异常(续)