HDU 1305:Immediate Decodability
来源:互联网 发布:java二分递归 编辑:程序博客网 时间:2024/05/21 17:56
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1305
题目翻译:
给出一系列0,1串,以字符串“9”结束,其中的一个串不能是另一个串的前缀,
如果出现这种情况,则输出is not decodeable,否则要输出is decodeable.
解题思路:
简单字典树。
AC代码:
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;char str[15];bool flag;///字典树节点typedef struct TrieNode { bool isWord; struct TrieNode *son[2];}Trie;void insertWord(Trie *root) { Trie *p = root; int i = 0; char ch = str[i]; while(ch != '\0') { int num = ch-'0'; if(p->son[num] == NULL) { Trie *node = (Trie*)malloc(sizeof(Trie)); for(int i = 0; i < 2; i++) { node->son[i] = NULL; } node->isWord = false; p->son[num] = node; p = p->son[num]; } else { if(p->son[num]->isWord == true) { flag = false; break; return; } else { p = p->son[num]; } } ch = str[++i]; } p->isWord = true;}void freeTrie(Trie *root) { for(int i = 0; i < 2; i++) { if(root->son[i] != NULL) { freeTrie(root->son[i]); } } free(root);}int main() { flag = true; Trie *root = (Trie*)malloc(sizeof(Trie)); for(int i = 0; i < 2; i++) { root->son[i] = NULL; } int Case = 0; while(~scanf("%s",str)) { if(strcmp(str,"9")==0) { if(flag) { printf("Set %d is immediately decodable\n",++Case); } else { printf("Set %d is not immediately decodable\n",++Case); } flag = true; freeTrie(root); root = (Trie*)malloc(sizeof(Trie)); for(int i = 0; i < 2; i++) { root->son[i] = NULL; } } else { if(flag) { insertWord(root); } } } return 0;}
阅读全文
0 0
- HDU-1305-Immediate Decodability
- hdu 1305 Immediate Decodability
- hdu 1305 Immediate Decodability
- HDU-1305 Immediate Decodability
- hdu-1305 Immediate Decodability
- HDU 1305 Immediate Decodability
- hdu 1305 Immediate Decodability
- hdu 1305 Immediate Decodability
- HDU 1305 Immediate Decodability
- hdu-1305-Immediate Decodability
- HDU 1305:Immediate Decodability
- HDU 1305 Immediate Decodability
- HDU 1305 Immediate Decodability(二叉树)
- 杭电 hdu 1305 Immediate Decodability
- hdu 1305 Immediate Decodability(字典树)
- Hdu 1305 Immediate Decodability 字典树
- hdu 1305 Immediate Decodability(Trie树)
- 【水题-前缀码】HDU 1305 Immediate Decodability
- json数据的转换
- Unity3D和Android相互通信的坑1
- LeetCode||64. Minimum Path Sum
- 【Scikit-Learn 中文文档】广义线性模型
- Android 开发笔记 1:Ubuntu 14.04 中安装eclipse开发环境
- HDU 1305:Immediate Decodability
- 使用Maven私服的好处
- 如何在交互式shell脚本中创建对话框
- Unreal教学(4)——组件和碰撞(Components and Collision)
- 禅道布署
- dbutil 的使用方法
- 【Linux】进程控制—exec函数族
- 记录QT的学习过程!
- Android LiveData简介(一)