ZOJ 2876 Phone List(trie树)
来源:互联网 发布:globalprotect mac 编辑:程序博客网 时间:2024/05/16 08:57
判断是否某个电话是另一个电话的前缀.
典型的trie树应用.
#include <iostream>#include <cstdio>#include <memory.h>using namespace std;const int maxn = 10001;struct node{bool flag;node * chd[10];}trie[maxn * 6], *root;int n, cnt;char buf[30];void init(){memset(trie, 0, sizeof(trie));cnt = 0;root = &trie[cnt++];}bool addWord(){int len = strlen(buf), f = 0;node * p = root;for (int i = 0; i < len; ++i){if(p->chd[buf[i] - '0'] == NULL){p->chd[buf[i] - '0'] = &trie[cnt++];p = p ->chd[buf[i] - '0'];f = 1;//建立了新结点,至少已经不是别人的前缀了}else{p = p ->chd[buf[i] - '0'];}if(p->flag){ //字符路径上有一个单词是当前单词的前缀return false;}}p->flag = true;if(!f)return false;//说明这个单词没有建过新结点,肯定是其他单词的前缀return true;}int main(){int T;scanf("%d", &T);while (T--){init();scanf("%d", &n);int f = 0;while (n--){scanf("%s", buf);if(!addWord()){f = 1;}}if(f){printf("NO\n");}else{printf("YES\n");}}return 0;}
- ZOJ 2876 Phone List(trie树)
- hdu 1671|| zoj 2876 phone list(trie 水)
- poj 3630 || zoj 2876 ||hdu 1671 Phone List (Trie树的应用)
- zoj 2876 Phone List
- zoj 2876 Phone List
- Phone List(trie树)
- zoj 2876 Phone List【字典树】【水】
- zoj 2876 Phone List(tire 树)
- Sicily 1426 Phone List(Trie树)
- POJ 3630 Phone List 【Trie树入门】
- hdu 1671 Phone List (Trie树,水题)
- hdu 1671 Phone List trie树
- Phone List(poj3630,简单trie树)
- Trie树入门题目--HDU1671 Phone List
- 1671 Phone List (Trie树)
- HDU 1671 Phone List(字典树Trie)
- POJ 3630 - Phone List (Trie树)
- HDU 1671 Phone List Trie树
- 面向未来,防止过时
- Android中使用Bezier曲线
- 学习之路上的感触
- 洛克菲勒写给儿子的38封信
- 逻辑思维训练500题(带答案)
- ZOJ 2876 Phone List(trie树)
- 整洁代码——提高代码可读性方法简述
- linux下mysql的卸载、安装全过程
- leters to his son
- Android创建桌面快捷方式几种方法
- Valid signing identity not found解决办法(原有IDP私钥丢失)
- FB60(F-43)与MIRO的区别
- 匈牙利算法 感觉不错哦
- axis调用两种风格的.net WebService