题意:

     给你一些字符串,然后问你他们中有没有一个串是另一个串的前缀。

思路:

      字典树水题,(这种水题如果数据不大(这个题目不知道大不大,题目没说估计不大),hash下也行,把每个串拆成len个串,然后map容器记录下就行了,不想存也

行,最后迭代一下也能出来),回来说字典树,就是最简单的前缀判断应用,我写的结构体里面有3个量,next[], v(出现次数) ,mk (是不是某个字符串的最后一位),

在查找的时候如果我们碰到了已经mk的,那么就直接发现前缀了,某个字符串是当前串的前缀,还有一种情况就是没有发现mk但是当前串的最后一位出现的次数大于0,也算

是发现前缀,当前串为某个字符串的前缀。ok就这些。  


#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct
Tree
{

Tree *next[2];
int
v ,mk;
}
Tree; Tree root; void Buid_Tree(char *str)
{
int
len = strlen(str);
Tree *p = &root ,*q;
for(int
i = 0 ;i < len ;i ++)
{
int
id = str[i] - '0';
if(
p -> next[id] == NULL)
{

q = (Tree *)malloc(sizeof(root));
q -> v = 1;
q -> mk = 0;
for(int
j = 0 ;j < 2 ;j ++)
q -> next[j] = NULL;
p -> next[id] = q;
p = p -> next[id];
}
else
{

p = p -> next[id];
p -> v ++;
}
}

p -> mk = 1;
} int
Find(char *str)
{
int
len = strlen(str);
Tree *p = &root;
for(int
i = 0 ;i < len ;i ++)
{
int
id = str[i] - '0';
p = p -> next[id];
if(
p == NULL) return 0;
if(
p -> mk == 1) return 2; }
return
p -> v;
} int main ()
{
char
str[10000];
int
cas = 1;
while(~
scanf("%s" ,str))
{
if(!
strcmp(str ,"9"))
{

printf("Set %d is immediately decodable\n" ,cas ++);
continue;
}

root.next[0] = root.next[1] = NULL;
Buid_Tree(str);
int
mk = 0;
while(
scanf("%s" ,str) && strcmp(str ,"9"))
{
if(
Find(str) > 0) mk = 1;
Buid_Tree(str);
}
if(!
mk) printf("Set %d is immediately decodable\n" ,cas ++);
else
printf("Set %d is not immediately decodable\n" ,cas ++);
}
return
0;
}




hdu1305 字典树水题的更多相关文章

  1. HDU 1247 - Hat’s Words - [字典树水题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 Problem DescriptionA hat’s word is a word in the ...

  2. CDOJ 1060 秋实大哥与快餐店 字典树 水题

    题目链接 B - 秋实大哥与快餐店 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Sub ...

  3. hdu -1251 统计难题(字典树水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 建树之后 查询即可. G++提交 ME不知道为什么,c++就对了. #include <iostre ...

  4. 字典树模板题(统计难题 HDU - 1251)

    https://vjudge.net/problem/HDU-1251 标准的字典树模板题: 也注意一下输入方法: #include<iostream> #include<cstdi ...

  5. CH 1601 - 前缀统计 - [字典树模板题]

    题目链接:传送门 描述给定 $N$ 个字符串 $S_1,S_2,\cdots,S_N$,接下来进行 $M$ 次询问,每次询问给定一个字符串 $T$,求 $S_1 \sim S_N$ 中有多少个字符串是 ...

  6. HDU 1251 统计难题(字典树模板题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给出一些单词,然后有多次询问,每次输出以该单词为前缀的单词的数量. 思路: 字典树入门题. #inc ...

  7. POJ 3468 A Simple Problem with Integers(线段树水题)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 135904 ...

  8. hdu 1754 I Hate It(线段树水题)

    >>点击进入原题测试<< 思路:线段树水题,可以手敲 #include<string> #include<iostream> #include<a ...

  9. hdu 1251 统计难题 (字典树入门题)

    /******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...

随机推荐

  1. k8s自定义controller设计与实现

    k8s自定义controller设计与实现 创建CRD 登录可以执行kubectl命令的机器,创建student.yaml apiVersion: apiextensions.k8s.io/v1bet ...

  2. Chome 88如何正确隐藏 webdriver?

    从 Chrome 88开始,它的 V8 引擎升级了,一些接口发生了改变. 使用 Selenium 调用 Chrome 的时候,只需要增加一个配置参数: chrome_options.add_argum ...

  3. 手把手教你Spring Boot2.x整合Elasticsearch(ES)

    文末会附上完整的代码包供大家下载参考,码字不易,如果对你有帮助请给个点赞和关注,谢谢! 如果只是想看java对于Elasticsearch的操作可以直接看第四大点 一.docker部署Elastics ...

  4. Apache配置 5.访问日志不记录静态文件

    介绍:项目中的CSS.图片.js都是静态文件.一般会将静态文件放到一个单独的目录中,以方便管理. 1. 配置 # vim /usr/local/apache2.4/conf/extra/httpd-v ...

  5. 【linux】驱动-3-字符设备驱动

    目录 前言 3. 字符设备驱动 3.1 Linux设备分类 3.2 设备相关概念 3.2.1 设备号 3.2.2 设备节点 3.2.3 APP open 文件理解 ** 3.3 数据结构 3.3.1 ...

  6. [^ ] 跟 [! ] 差在哪?-- Shell十三问<第十四问>

    [^ ] 跟 [! ] 差在哪?-- Shell十三问<第十四问> 这道题目说穿了, 就是要探讨 Wildcard(通配符)与 Regular Expression(正则表达式)的差别的. ...

  7. 【2020.8.23NOIP模拟赛】失落

    [ 2020.8.23 N O I P 模 拟 赛 ] 失 落 [2020.8.23NOIP模拟赛]失落 [2020.8.23NOIP模拟赛]失落 题目描述 出题人心情很失落,于是他直接告诉你让你求出 ...

  8. 【RocketMQ源码分析】深入消息存储(2)

    前文回顾 CommitLog篇 --[RocketMQ源码分析]深入消息存储(1) MappedFile篇 --[RocketMQ源码分析]深入消息存储(3) 前文说完了一条消息如何被持久化到本地磁盘 ...

  9. elementui 表格 如何使操作中隐藏一个按钮

    <el-table-column label="权限"min-width="100"> <template scope="scope ...

  10. 【洛谷】P1294 高手去散步

    题目背景 高手最近谈恋爱了.不过是单相思."即使是单相思,也是完整的爱情",高手从未放弃对它的追求.今天,这个阳光明媚的早晨,太阳从西边缓缓升起.于是它找到高手,希望在晨读开始之前 ...