poj 3630 Phone List
来源:互联网 发布:python入门经典 下载 编辑:程序博客网 时间:2024/05/26 07:28
原题链接:http://poj.org/problem?id=3630
字典树的简单应用,具体实现如下:
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef char State[12];typedef struct _trie{int cnt;struct _trie *next[10];}trie, *Trie;State st[10002];trie node[1000000];int sz = 0;Trie built(){Trie T = &node[sz++];memset(T, 0, sizeof(trie));return T;}void insert(Trie T, char *src){char *p = src;while (*p != '\0'){if (T->next[*p - '0'] == NULL) T->next[*p - '0'] = built();T = T->next[*p - '0'];T->cnt++;p++;}}int search(Trie T, char *src){char *p = src;while (*p != '\0'){if (T == NULL || T->next[*p - '0'] == NULL) return 0;T = T->next[*p - '0'];p++;}return T->cnt;}int main(){#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w+", stdout);#endifint t, n;State rev;scanf("%d", &t);while (t--){sz = 0;scanf("%d", &n);Trie root = built();int k = n, count = 0, flag = 0;while (k--){scanf("%s", rev);strcpy(st[count++], rev);insert(root, rev);}for (k = 0; k < n; k++){if (search(root, st[k]) > 1){printf("NO\n");flag = 1;break;}}if(!flag) printf("YES\n");}return 0;}
0 0
- POJ 3630 Phone List
- POJ 3630 Phone List
- poj 3630 Phone List
- poj 3630 Phone List
- POJ 3630 Phone List
- Poj 3630 Phone List
- POJ 3630 Phone List
- poj 3630 Phone List
- poj 3630 phone list
- poj 3630 Phone List
- POJ-3630 Phone List
- POJ 3630 Phone List
- poj 3630(phone list)
- poj 3630 Phone List
- POJ 3630 Phone List
- POJ 3630 Phone List
- POJ【3630】Phone List
- POJ 3630 Phone List
- 浅析C/C++中new和malloc的区别
- windows下lammps并行版本的安装
- 分治法(最近点对)——HDU 1007
- CentOS下载及版本选择
- jdk源码之Collection接口
- poj 3630 Phone List
- C语言程序反汇编
- 黑马程序员——java面向对象(三)多态、内部类、包
- 白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
- item属性总结
- java中list的toArray有参方法小结
- Mat类的一些用法
- Code[vs]数字三角形(基础棋盘dp)
- Activiti boundrytimer 和listen结合使用学习