hdu 1305 Immediate Decodability 字典树
来源:互联网 发布:js获取下一天的日期 编辑:程序博客网 时间:2024/05/29 16:16
字典树统计字符串个数
题意:给你一些字母的编码,全部为01串,让你判断一个01串是不是另外一个01串的前缀。
思路:把01全部存入字典树里面,在依次查找这些字符串,如果这个字符串出现的次数大于等于两次,就不可以快速解码了
详情见代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxn 100010int cur=1;char str[maxn][12];int vis[maxn];struct node{ int num; int next[4]; void init() { num=0; memset(next,-1,sizeof(next)); }} trie[maxn];void insert(char *s,int len){ int p=0; for(int i=0; i<len; i++) { int x=s[i]-'0'; if(trie[p].next[x]==-1) { trie[cur].init(); trie[p].next[x]=cur++; } p=trie[p].next[x]; trie[p].num++; }}bool find(char *s,int len){ int p=0; for(int i=0; i<len; i++) { int x=s[i]-'0'; p=trie[p].next[x]; } if(trie[p].num>=2)return false;//01串是另外一个01串的前缀 else return true;}int main(){ int ans=0; char ss[12]; cur=1; trie[0].init(); int n=0,len; while(~scanf("%ss",ss)) { // cur=1; if(strcmp(ss,"9")==0)break; strcpy(str[n],ss); len=strlen(str[n]); str[n][len]='\0'; vis[n]=len; insert(str[n],len); n++; for(;;) { scanf("%s",str[n]); if(strcmp(str[n],"9")==0)break; len=strlen(str[n]); vis[n]=len; insert(str[n],len); n++; } bool flag; for(int i=0; i<n; i++) { flag=find(str[i],vis[i]); if(!flag)break; } if(flag)printf("Set %d is immediately decodable\n",++ans); else printf("Set %d is not immediately decodable\n",++ans); cur=1; trie[0].init(); n=0; } 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 E字典树
- HDU 1305 Immediate Decodability (字典树)
- hdu 1305-Immediate Decodability(字典树)
- HDU 1305 Immediate Decodability HDU 1671 Phone List(字典树)
- (step5.1.2)hdu 1305(Immediate Decodability——字典树)
- hdu 1305 Immediate Decodability (字典树入门)
- HDU 1305 Immediate Decodability 简单字典树 题意
- HDU-1305 Immediate Decodability (Trie 字典树 入门题)
- 【hdu】 Immediate Decodability (字典树)
- hdu 1035 Immediate Decodability(字典树)
- Immediate Decodability 字典树
- IMMEDIATE DECODABILITY(字典树)
- Immediate Decodability-字典树
- spring+mybatis整合
- maven和ant区别
- 解决 Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
- Some Command
- 【GCC】从hello.c到可执行文件的过程之预处理阶段
- hdu 1305 Immediate Decodability 字典树
- Cocos2d-x 2.x、3.x读书摘要(2016-6-25 07:18)
- The linux bridge has disabled IPv6
- 重设浏览器默认样式
- css布局通用类
- ScrollView + 自定义cell 组合(实现复用)
- linux之设置单网卡多ip
- 今日头条架构演进之路——高压下的架构演进专题(含PPT)
- struts2中的错误--java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils(