码迷,mamicode.com
首页 > 其他好文 > 详细

poj 1056 IMMEDIATE DECODABILITY

时间:2016-01-08 00:20:11      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

trie树模板题。题目主要是看前缀,因此只要碰到染色节点就false就行了。

#include<iostream>
#include<cstdio>
#include<cstring>
#define root 1
using namespace std;
int cnt=0,cntnode=1;
int child[1005][15],flag[1005];
char s[1005];
bool insert(int x,int num,int limit)
{
int r;
if (s[num]==‘0‘) r=0;
else r=1;
if (flag[x]==1) return false;
else
{
if (child[x][r]==0)
{
child[x][r]=++cntnode;
if (num!=limit) return insert(child[x][r],num+1,limit);
}
else
if (num!=limit) return insert(child[x][r],num+1,limit);
if (num==limit)
{
if (flag[child[x][r]]==1) return false;
flag[child[x][r]]=1;
return true;
}
}
}
int main()
{
while (scanf("%s",s)!=EOF)
{
int judge=0;
cnt++;
memset(child,0,sizeof(child));
memset(flag,0,sizeof(flag));
cntnode=1;
int l=strlen(s);
if (insert(root,0,l-1)==false) judge=1;
for (;;)
{
scanf("%s",s);
int l=strlen(s);
if (s[0]==‘9‘) break;
if (insert(root,0,l-1)==false) judge=1;
}
if (judge==0) printf("Set %d is immediately decodable\n",cnt);
else printf("Set %d is not immediately decodable\n",cnt);
}
return 0;
}

poj 1056 IMMEDIATE DECODABILITY

标签:

原文地址:http://www.cnblogs.com/ziliuziliu/p/5111696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!