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

Type-C连接中的CC引脚:Rp与Rd电阻的识别与供电模式选择 本文深入解析Type-C接口中CC引脚的核心功能,包括Rp与Rd电阻的识别原理及供电模式选择机制。通过详细的分压计算和实战案例,揭示Type-C设备如何通过CC引脚实现方向检测、角色识别和供电协商,为硬件设计提供关键指导。 阅读详情
IMMEDIATE DECODABILITY

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

我的代码(数组字典树):
查找和插入放在主函数一次性完成了。
#include <bits/stdc++.h>  
  
using namespace std;  
  
struct node  
{  
    int next[2];  
    int cnt;  
    bool isWord;  
    void init()   
    {
        cnt=0;  
        isWord=false;  
        memset(next,-1,sizeof(next));  
    }  
}T[100000];  
  
int main()  
{  
    int kase=0,tot=1,flag=1; char s[100]; T[0].init();  
    while(~scanf("%s",s))  
    {  
        int len=strlen(s);  
        if(s[0]!='9')
        {  
            int i,p=0;  
            for(i=0;i<len;i++)
            {  
                int x=s[i]-'0';  
                if(T[p].next[x]==-1)
                {  
                    T[tot].init();  
                    T[p].next[x]=tot++;  
                }  
                p=T[p].next[x];  
                T[p].cnt++;  
                if(T[p].isWord) flag=0;       //包含其它串  
            }  
            T[p].isWord=true;  
            if(T[p].cnt>1) flag=0;            //包含于其它串  
        }else{  
            printf("Set %d is%simmediately decodable\n",++kase,flag?" ":" not ");  
            T[0].init(); tot=1,flag=1;  
        }  
    }  
    return 0;  
}  








指针字典树:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

const int MAXN = 2;
typedef struct Trie_Node
{
    bool isCode;
    struct Trie_Node *next[MAXN];
}Trie;
bool flag;

void Trie_insert(Trie *root,char *str)
{
    Trie *p=root;
    int len=strlen(str);
    for(int i=0;i<len;i++)
    {
        int k=str[i]-'0';
        if(p->next[k]==NULL)
        {
            Trie *t=new Trie;
            for(int j=0;j<MAXN;j++)
                t->next[j]=NULL;
            t->isCode=false;
            p->next[k]=t;
        }
        else
        {
            if(p->next[k]->isCode)
            {
                flag=false;
                return;
            }
        }
        p=p->next[k];
    }
    p->isCode=true;
}
void Trie_del(Trie *root)
{
    for(int i=0;i<MAXN;i++)
    {
        if(root->next[i]!=NULL)
            Trie_del(root->next[i]);
    }
    free(root);
}
char str[15];

int main()
{
    int iCase=0;
    while(scanf("%s",str)!=EOF)
    {
        iCase++;
        Trie *root=new Trie;
        for(int i=0;i<MAXN;i++)
            root->next[i]=NULL;
        root->isCode=false;
        flag=true;
        Trie_insert(root,str);
        while(scanf("%s",str))
        {
            if(str[0]=='9') break;
            if(flag) Trie_insert(root,str);
        }
        if(flag) printf("Set %d is immediately decodable\n",iCase);
        else printf("Set %d is not immediately decodable\n",iCase);
        Trie_del(root);
    }
    return 0;
}
题目数据范围小胡搞:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>

using namespace std;

int main()
{
    char str[20][20],temp[20];
    int ansNum=1,cnt=0,i,j,flag=1,len,t;
    while(~scanf("%s",temp))
    {
        if(temp[0]=='9')
        {
            for(i=1;i<cnt;i++)
            {
                if(!flag) break;
                for(j=i+1;j<=cnt;j++)
                {
                    if(!flag) break;
                    len=min(strlen(str[i]),strlen(str[j]));
                    for(t=0;t<len;t++)
                    {
                        if(str[i][t]!=str[j][t])
                        {
                            flag=1;
                            break;
                        }
                        flag=0;
                    }
                }
            }
            if(flag) printf("Set %d is immediately decodable\n",ansNum);
            else printf("Set %d is not immediately decodable\n",ansNum);

            cnt=0,flag=1,ansNum++;
            memset(str,0,sizeof(str));
        }
        else
        {
            strcpy(str[++cnt],temp);
            getchar();
        }
    }
}



Zemax显微镜设计:从物镜到目镜的完整光学系统优化 本文详细介绍了使用Zemax进行显微镜光学系统设计的完整流程,从物镜到目镜的优化技巧。通过实战案例和关键参数设置,帮助读者掌握数值孔径、视场角等核心概念,实现高分辨率显微镜设计。文章特别强调了系统级优化和公差分析的重要性,为科研和工业检测提供可靠的光学解决方案。 阅读详情

相关推荐

Vue3项目实战:集成h265webjs打造高性能Web端H.265播放器

本文详细介绍了如何在Vue3项目中集成h265webjs库,构建高性能的Web端H.265播放器。通过封装播放器管理模块、利用Vue3组合式API优雅管理生命周期,并提供了从环境准备、核心集成到进阶优化的完整实战指南,有效解决了浏览器原生不支持H.265解码的难题,显著降低视频流带宽占用。

weixin_29016833的博客 363

POJ-1056 IMMEDIATE DECODABILITY(字典树 trie)

POJ-1056  IMMEDIATE DECODABILITY(字典树 trie)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 assum...

碳酸钙的01妖精的博客 292

智能检查点优化:动态频率与差异化存储的断点续训实践(模型训练丨容错机制丨人工智能)

本文深入探讨了大规模模型训练中智能检查点优化的核心实践。针对传统固定频率保存导致的存储浪费与恢复缓慢问题,提出了基于损失变化率的动态频率算法与分层差异化存储策略。通过PyTorch代码示例,详细展示了如何实现动态调度与增量保存,有效降低存储成本,并确保训练中断后能快速、可靠地恢复,显著提升训练任务的容错能力与经济效益。

weixin_29072299的博客 333

(step5.1.2)hdu 1305(Immediate Decodability——字典树)

题目大意:输入一系列的字符串,判断这些字符串中是否存在其中的一个字符串是另外一个字符串的前缀。。 如果是,输出Set 。。 is not immediately decodable 否则输出Set .. is immediately decodable 说的通俗点,就是判断一个字符串是否是两外一个字符串的前缀 解题思路: 这是一道字典树的题。一开始的时候,我用c/c++来写,然后

黄俊东的专栏 1125

876-基于STM32的毫米波雷达智能睡眠监测系统

基于STM32的毫米波雷达智能睡眠监测系统通过非接触式毫米波雷达检测人体呼吸频率和体动次数,结合WIFI数据传输和OLED显示,实现睡眠质量分析与远程监控。系统核心功能包括生理参数采集、阈值设置、数据可视化及远程交互。

m0_50083169的博客 1543

基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型对话聊天机器人

前面两篇博文,我们在笔记本部署了Llama 3 8B大模型,使用Ollama搭建了基于Web 可视化对话机器人。在使用过程中,大模型经常出现中文问题英文回答的问题。本博文就用Llama3-Chinese-Chat微调模型来解决这个问题……

老牛啊 9238

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

数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

数据库关系运算: 1. 关系代数(基本关系代数、附加关系代数、扩展关系代数) 2. 元组关系演算 3. 域关系演算

ysji's blog 1万+

Immediate Decodability(HDU-1305)(字典树的简单应用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1305 题目大意: 这个题输入一些行二进制数,每组之间有一个单独的9隔断,在一组之中要判断任意一个二进制数  是不是 这组其他二进制数的前缀,如果有一个是前缀则输出    is not immediately decodable ,否则输出 is immediately decodable

殇星痕的博客 465

ESP32语音交互实战:离线唤醒与DeepSeek大模型集成

本文详细介绍了如何将ESP32-S3开发板与天问ASRPRO语音模块结合,实现离线语音唤醒并集成DeepSeek大模型的智能交互系统。通过串口通信与API调用,系统可处理本地指令及复杂语义请求,适用于低成本、高隐私保护的AIoT语音交互场景。

rust6ferris的博客 868

SOME/IP协议详解「1.0·概述」

主要讲解什么是someip,

雪云飞星的博客 5367

POJ-1056-IMMEDIATE DECODABILITY (字典树)

原题: 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 bina...

wjl_zyl_1314的博客 283

Sigrity Power DC Single-BoardPackage IR Drop Analysis模式进行单板压降仿真分析操作指导

如果需要单独对某个via设置参数,右侧选择Setup by padstack,下方下拉选择某个via,单独设置参数即可。举例:板厚1.6mm,内层1OZ(1.2mil,即0.03mm),铜皮宽度1mm,20度温升,允许通流I为2.5A。目的是模拟实际情况,via的孔壁电镀1mil,中间是空心的,让via不完全被填充金属成为实心via。Upper/lower Tolerance:上下公差,设置为5%,也就是压降允许的范围。电流密度计算公式:J=I/A(J为电流密度,I为电流,A为横截面积)

weixin_54787054的博客 697

POJ1056 HDU1305 ZOJ1808 UVA644 UVALive5479 Immediate Decodability【字典树】

IMMEDIATE DECODABILITYTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 14371 Accepted: 6862DescriptionAn encoding of a set of symbols is said to be immediately decodable if no code for one sy...

海岛Blog 738

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu 1305 Immediate Decodability(字典树)

数据结构,字典树,二叉树

繁华过后你还有我 1177

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

poj1056 & hdu1305 & zoj1808 Immediate Decodability(字典树变形)

poj1056 & hdu1305 & zoj1808 Immediate Decodability(字典树变形)

1694

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Immediate Decodability HDU - 1305(字典树)

#include &lt;stdio.h&gt; #include &lt;cstring&gt; /**     若A是B的前缀,有两种情况,一是A先建树(短的先建树),二是B先建树 (长的先建树)  */  struct Node {     int length;      Node *next[2];     Node() {         length = 0;         ...

上帝是个娘们的博客 209

HDU 1305 Immediate Decodability (字典树)

Immediate Decodability 题目链接 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 3 Accepted Submission(s) : 2 Problem Description ...

weixin_30603633的博客 206

HDU1305Immediate Decodability(字典树)

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

小胡同的诗 327

HDU_1305 Immediate Decodability 【字典树】

题目链接 题目描述不断输入字符串直到字符为”9”结束,如果在”9”之前,一个字符的代码不是另一个字符的代码的前缀,则这种情况为立即可解就输出”is immediately decodable”否则输出”is not immediately decodable”解题思路字典树求前缀是否出现过,每插入一个字符就对字符进行查找。 插入时给字符最后的节点加1表示该节点存在。查找的过程:如果在向下扩展的过程

Learning Deep Learning 418

Immediate Decodability UVA - 644 (字典树trie)

传送门 题意:给出一组由0或1组成的字符串,组与组之间用9分隔开,然后判断如果这个组之间有前缀,那么输出not,否则输出is 题解:使用字典树,建树直接就可以判断,分为两种情况,第一种情况就是前缀在前面出现,直接判断val[u]是否存在,第二种情况是前缀在后面出现,那么就在建树的过程中看是否出现了新的结点,如果没有出现,说明也是可以的。 附上代码: #include&lt;bits/s...

肘子的博客 273

hdu1305-Immediate Decodability 字典树

字段树求前缀。 这里长短不一,只有存在前缀即可。 如果我们存下来排序会超时。 所以我们不能存下来。 如果已存的长,我们要找的短。那么我们只要遍历短的,如果短的全部都是已经存在的点。那么短的就是长的的内存。 如果已存的短,我们在短的最后一个字母处放一个flag,遍历长的,如果长的经历到这个点,发现这个点存在flag,说明短的是这个长的的前缀。 #include    #in

Little_boy_z的博客 261

(POJ) 3682 - King Arthur's Birthday Celebration

亚瑟王掷一枚硬币,概率p正面向上,概率1-p反面朝上,现在亚瑟王要掷k次正面朝上,第i次掷硬币时花费2∗i−1。问:期望要掷多少枚硬币才能达到k次正面朝上,以及达到k次正面朝上时的花费。

Doge 1003

(51nod)1001 - 数组中和等于K的数对

给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。

Doge 967

(51nod)1012 - 最小公倍数LCM

输入2个正整数A,B,求A与B的最小公倍数。

Doge 911

(51nod)1003 - 阶乘后面0的数量

n的阶乘后面有多少个0?6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。

Doge 792
上一篇: (hiho一下第二周)#1014 Trie树 【模版】
下一篇: 用数组实现栈(Stacks)、队列(Queue)和双向链表(Doubly Linked List)的伪代码
ACDoge
博客等级 码龄10年 8粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值