字典树 之 poj 1056
来源:互联网 发布:js点击播放音频 编辑:程序博客网 时间:2024/06/05 19:34
// [7/5/2014 Sjm]/*字典树,找前缀。具体求解思路同:字典树 之 hdu 1671 poj 3630*/#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>using namespace std;const int MAX = 2;struct Trie{bool Judge;Trie* next[2];Trie(){Judge = false;memset(next, NULL, sizeof(next));}};Trie* Root;bool Cre_Sea_Trie(char* str){int Jdg1 = true, Jdg2 = false;int len = strlen(str);Trie* p = Root;for (int i = 0; i < len; i++) {int pos = str[i] - '0';if (!(p->next[pos])) {p->next[pos] = new Trie;Jdg1 = false;}else {if (p->next[pos]->Judge) {Jdg2 = true;break;}}p = p->next[pos];}p->Judge = true;return (Jdg1 || Jdg2);}void DelTrie(Trie* T) {for (int i = 0; i < MAX; i++) {if (T->next[i]) {DelTrie(T->next[i]);}}delete[] T;}int main(){//freopen("input.txt", "r", stdin);char str[10][15];int num = 0, mycount = 0;while (~scanf("%s", str[num])) {if (strcmp(str[num], "9") == 0) {Root = new Trie;mycount++;int i;for (i = 0; i < num; i++) {if (Cre_Sea_Trie(str[i])) {printf("Set %d is not immediately decodable\n", mycount);break;}}if (i == num) {printf("Set %d is immediately decodable\n", mycount);}DelTrie(Root);num = 0;continue;}num++;}return 0;}
0 0
- 字典树 之 poj 1056
- POJ 1056 字典树
- 字典树 之 hdu 1671 poj 3630
- POJ 1056 IMMEDIATE DECODABILITY (字典树)
- POJ 1056 IMMEDIATEDECODABILITY(字典树Trie)
- POJ 1056 IMMEDIATE DECODABILITY 字典树
- poj 1056 IMMEDIATE DECODABILITY 字典树
- POJ 1056 IMMEDIATE DECODABILITY(字典树)
- poj 1056 IMMEDIATE DECODABILITY 字典树
- POJ 1056 IMMEDIATE DECODABILITY 字典树
- POJ 1056 IMMEDIATE DECODABILITY(字典树 水题)
- poj 1056 IMMEDIATE DECODABILITY(字典树)
- poj 1056 字典树水题
- POJ 2001 字典树
- 字典树 poj 2001
- POJ 3630 字典树
- POJ 1451 字典树
- POJ 2001 字典树
- PHP 自幂数算法
- Linux中history历史命令使用方法详解
- ClientDataSet的用法
- Linux--编程--epoll
- OSX:视频-命令行制作OSX安装U盘
- 字典树 之 poj 1056
- pdf阅读器开发
- 素数判定 费马测试
- android 短信sms 接入,实现短信验证注册功能
- C++ primer 第五版习题答案, Stanley B. Lippman( 斯坦利 李普曼)(持续更新中)
- 私户银行卡送礼洗钱出售
- vs2010字符串的转换
- Difference Between == and === : A Simple Comparison
- IOS开发笔记 术语篇