POJ 1056 IMMEDIATE DECODABILITY(字典树 水题)

GeoServer下载与安装(详细图文教程) GeoServer官方版可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。 阅读详情
IMMEDIATE DECODABILITY
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 13014 Accepted: 6235

Description

An encoding of a set of symbols is said to be immediately decodable if no code for one symbol is the prefix of a code for another symbol. We will assume for this problem that all codes are in binary, that no two codes within a set of codes are the same, that each code has at least one bit and no more than ten bits, and that each set has at least two codes and no more than eight.

Examples: Assume an alphabet that has symbols {A, B, C, D}

The following code is immediately decodable:
A:01 B:10 C:0010 D:0000

but this one is not:
A:01 B:10 C:010 D:0000 (Note that A is a prefix of C)

Input

Write a program that accepts as input a series of groups of records from standard input. Each record in a group contains a collection of zeroes and ones representing a binary code for a different symbol. Each group is followed by a single separator record containing a single 9; the separator records are not part of the group. Each group is independent of other groups; the codes in one group are not related to codes in any other group (that is, each group is to be processed independently).

Output

For each group, your program should determine whether the codes in that group are immediately decodable, and should print a single output line giving the group number and stating whether the group is, or is not, immediately decodable.

Sample Input

01
10
0010
0000
9
01
10
010
0000
9

Sample Output

Set 1 is immediately decodable
Set 2 is not immediately decodable
 

【题意】要求所给字符串是否有的是其他字符串的前缀。

【解题方法】可以想到字典树,字典树的一个分支记录一个字符串,叶子节点做相应的标记。如果在字典树上插入新字符串的时候经过先前的叶子节点标记,则说明以该节点为叶子节点的路径上的字符串是当前插入字符串的前缀;如果在字典树上插入新字符串的长度小于当前所在的分支,则说明当前插入字符串是经过当前路径的所有分支所标示的字符串的前缀。

【AC 代码】

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100010;
char s[20];
bool ff;
struct Trie{
	int root,sz,nxt[maxn][2],flag[maxn];
	int newnode()
	{
	    flag[sz]=0;
	    nxt[sz][0]=nxt[sz][1]=-1;
	    return sz++;
	}
	void init()
	{
	    sz=0;
	    root=newnode();
	}
	void insert(char *s)
	{
	    int u=root,n=strlen(s);
	    for(int i=0; i<n; i++){
            int &v=nxt[u][s[i]-'0'];
            if(v!=-1)
            {
                if(flag[v]||i==n-1)
                {
                    ff=false;
                    return ;
                }
            }
            else{
                v=newnode();
            }
            u=v;
	    }
	    flag[u]=1;
	}
}trie;

int main()
{
	int cas=1;
	while(scanf("%s",s)!=EOF)
	{
		ff=true;
		trie.init();
		trie.insert(s);
		while(scanf("%s",s))
		{
			if(strcmp(s,"9")==0) break;
			if(ff) trie.insert(s);
		}
		if(!ff) printf("Set %d is not immediately decodable\n",cas++);
		else printf("Set %d is immediately decodable\n",cas++);
	}
	return 0;
}


硬件描述语言Verilog学习(一) 主要学习综合和仿真、模块结构和信号类型Verilog 是用代码的形式描述硬件的功能,最终在硬件电路上实现该功能。在 Verilog 描述出硬件功能后需要使用综合器对 Verilog 代码进行解释并将代码转化成实际的电路来表示,最终产生实际的电路,也被称为网表。这种将 Verilog 代码转成网表的工具就是综合器。 上图左上角是一段 Verilog 代码,该代码实现了一个加法器的功能。在经过综合器解释后该代码被转化成一个加法器电路。QUARTUS、ISE 和 VIVADO 等 FPGA 开发工具都是综合器, 阅读详情

相关推荐

强网杯Web题ezphp解题全记录:利用PHP反序列化与条件竞争拿下服务器

本文详细解析了强网杯Web题目ezphp的解题过程,通过PHP反序列化与条件竞争漏洞的组合利用,成功获取服务器权限。文章深入剖析了反序列化链的构造、文件上传绕过技巧以及条件竞争的实际应用,为CTF选手和Web安全研究者提供了宝贵的实战经验。

weixin_29006187的博客 384

【字典树】Immediate Decodability

1004: Immediate DecodabilityTime 给出一些数字串,判断是否有一个数字串是另一个串的前缀。 Input输入数据为多组数据,每组数据读到 9 时结束。 数字串只包含 0,1,记每个数字串长度为 l,则 1≤l≤10。每组数据至少有 2 个数字串,至多有 8 个数字串。 Output 对于每组数据,如果不存在一个数字串是另一个串的前缀,输出一行 Set t is imme...

qq_44684599的博客 1325

Vensim系统动力学建模实战:从理论到仿真优化【案例详解】

本文详细介绍了Vensim在系统动力学建模中的实战应用,从基础理论到仿真优化全面解析。通过人口增长、供应链库存优化等典型案例,展示如何利用Vensim构建动态模型并进行参数优化,帮助读者掌握系统动力学建模的核心技术与实践技巧。

weixin_29231725的博客 479

IMMEDIATE DECODABILITY

题目:IMMEDIATE DECODABILITY 题解:先按照每个字符串的长短从小到大排序,然后依次插入每一个字符串,并且每一个插完之后,做一下标记,如果下一个字符串访问到这个标记,则说明Not #include <string> #include <cstdio> #include <algorithm> #include <iostream> ...

多一些不为什么的坚持 823

手把手教你学Simulink--逆变器场景:基于Simulink的单相全桥逆变器PWM控制仿真建模

本文介绍了使用Simulink和Simscape Electrical库进行单相全桥逆变器PWM控制仿真建模的详细步骤。主要内容包括:从创建Simulink项目、添加电力电子组件、构建逆变器模型,到设置参数、运行仿真和结果分析。重点讲解了逆变器核心模块的配置、PWM信号生成、负载建模等关键环节,并提供了优化改进建议。该指南适用于电力电子初学者,通过仿真可以帮助理解单相全桥逆变器的工作原理和PWM控制技术,为实际应用和算法开发提供基础平台。

MHD0815的博客 666

echarts 饼图(加载进度条动画效果)

1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。

God's asylum的博客 1631

poj1056

IMMEDIATE DECODABILITY Time Limit:1000MS Memory Limit:10000K Total Submissions:7371 Accepted:3513 Description An encoding of a set of symbols is said to be ...

weixin_34179968的博客 237

HANA-公司间销售ICS-IDOC系统配置-保姆级配置文档

合作伙伴编号:这个客户表示收票方(销售公司在生产公司中所对应的客户代码,卖方开票,买方收票),也就是咱们在配置消息类型输出的时候合作伙伴的类型的一个具体的客户编码,这个是站在发货工厂的角度去看的,也就是EDI 输出的 BP 合作伙伴的编号;在项目实施过程中经常会遇到关联方交易的问题,有公司间采购的业务场景,也会存在公司间销售的业务场景,本文将着重讲解公司间销售在SAP系统中的实现场景。在这个过程中,销售公司向客户开票产生应收,而生产公司向销售公司开票产生自己的应收,同时销售公司向生产公司产生应付。

我小时候很黑的博客 2393

HDU1305Immediate Decodability(字典树)

题目链接:hdu1305 题目大意:给一大堆01串,并以9表示一组01串输入结束,问这些串之间是否至少有一个串是另一个串的前缀。 解题思路:毫无疑问,可以用Trie来维护这些串,每次插入时判断是否含有当前串str的前缀串或者自己是别的串的前缀串,代码种的查询时query2。查询的复杂度O(n)。 字典树介绍 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,...

小胡同的诗 327

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3462

RAGFlow体验大提升:使用GPU加速

场景:在正常部署过程中,启动RAGFlow会用到docker-compose.yml文件来启动。但是在实际使用过程中,会发现RAGFlow极其的卡和笨重,给一一种很不好的用户体验,有没有一种可以让RAGFlow加速的呢?进入RAGFlow的docker目录下会有发现有很多docker的配置文件。方法一:选择docker-compose-gpu.yml这个来启动项目。两个方法选其一 ,就会让你的RAGFlow的使用起来非常的丝滑!方法二:在docker-compose.yml末尾加上。

Ven%的博客 3157

poj1056(字典树)

IMMEDIATE DECODABILITY Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9875   Accepted: 4670 Description An encoding of a set of symbols is said to be immediat

晓风残月xj 1282

Windows部署小龙虾 OpenClaw 报错不断?参考这篇文章,轻松配置 OpenClaw 所需环境

想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅

XiaoqiangClub的博客 363

POJ 1056 IMMEDIATE DECODABILITY

IMMEDIATE DECODABILITY Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11585   Accepted: 5517 Description An encoding of a set of symbols is said to be immed

ACway的专栏 5381

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POJ 1056 IMMEDIATE DECODABILITY 字典树

样例 POJ 1056 http://poj.org/problem?id=1056 字典树入门,很容易的一道字典树题; 题意: 输入一些字符串,由0 1 组成,如果有一个字符串是另一个的前缀,就是不能被立即解开的锁,输出 Set 1 is not immediately decodable,如果没有前缀,就是能被立即解开的,输入一个 9 代表 这组输入结...

aocang4831的博客 138

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

POJ 1056 IMMEDIATE DECODABILITY (字典树)

题目地址:http://poj.org/problem?id=1056 题意:给你一些字符串,要你判断有没有其中的一个字符串是另外一个字符串的前缀。 题解:字典树解决。 AC代码: #include #include #include #include #include #include #include #include #include #includ

lamborghini1993 1221

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 1056 IMMEDIATE DECODABILITY // Trie

题目描述POJ 1056 IMMEDIATE DECODABILITY解题思路思路同 POJ 3630 Phone List参考代码//********************************************** // Author: @xmzyt1996 // Date: 2015-10-16 // Name: POJ 1056.cpp //*************

FZU_zyt的专栏_(:з」∠)_ 392

poj1056IMMEDIATE DECODABILITY(字典树)

->题目请戳这里 题目大意:跟这题基本一样 题目分析:略,练习一下徒手静态字典树,最后一道了。。 详情请见代码: #include #include #include #include using namespace std; struct node { int next[2]; int tag,end; }lcm[1<<16]; char s[20]; int f

ophunter的专栏 967

poj 1056 IMMEDIATE DECODABILITY

//这一题用暴力求解可以过,但是当数据比较大的时候,就肯定会超时,所以就用到了字典树,这也是我第一次接触字典树,花了几小时 //看懂了字典树的原理之后,再看懂别人的代码,自己打出来,无办法,第一次接触,还需要多多的练习! /*#include #include #include using namespace std; vector v; int main() { int

yzl_rex 715

POJ 1056-IMMEDIATE DECODABILITY

IMMEDIATE DECODABILITY Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13963   Accepted: 6674 题目链接:点击打开链接 Description An encoding of a set of symbols

别止的博客 327

POJ 1056 IMMEDIATE DECODABILITY(字典树)

字典树的每个节点都标记是不是某个字符串的结尾字符。 依次插入字符串,有两种错误情况: 1.插入时经过了某个是结尾字符的节点 2.到结尾字符时,对应的节点已经存在了 代码: // // main.cpp // 1056 IMMEDIATE DECODABILITY // // Created by Baoli1100 on 15/4/5. // Copyright (c)

Baoli1008的专栏 520

POJ1056 IMMEDIATE DECODABILITY

题目链接:http://poj.org/problem?id=1056 这道题用字典树可接,具体思路就是每遇到一个单词都把它插入到字典树之中,然后如果遇到了9,就查询每个单词的词尾标记的数量,如果词尾标记的数量多于1,则证明另外一个单词是这个单词的前缀,输出失败,否则的话输出成功。 #include #include #include #include using namespace

浅雨歌 735

(UVA)644 (POJ)1056 (HDU)1305 - Immediate Decodability【字典树】

判断字符串中有没有一个串是另一个串的前缀

Doge 636

poj 1056 IMMEDIATE DECODABILITY

trie

GadyPu的专栏 407

poj1056 IMMEDIATE DECODABILITY (字典树)

题链接: http://poj.org/problem?id=1056 //poj1056:判断一个前缀是否是另一个串的前缀问题,这让我想到了字典树 #include #include using namespace std; const int N=1000; typedef struct node { int cnt; struct node *next[2]; }*Tree,T;

三思 478

POJ1056 IMMEDIATE DECODABILITY【字典树】

IMMEDIATE DECODABILITY Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14888   Accepted: 7055 Description An encoding of a set of symbols is said to be immediately decod...

逐梦者 355
上一篇: HDU 4099 Revenge of Fibonacci
下一篇: HDU 3065 (AC自动机水题)
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值