HDU1671-Phone List (trie树)
---恢复内容开始---
trie树,我是设置了号码结束标志,在insert函数里做处理:如果在插入的过程中,一直没有开辟新的节点,说明新插入的这个号码是某个已经插入了的号码的前缀,输出“NO”。如果在插入的过程中,经过了结束标志,说明这个新插入的号码之前已经插入了前缀号码,同样的,输出“NO”。此外,都输出“YES”。
1 #include<stdio.h> 2 #include<malloc.h> 3 #include<string.h> 4 typedef struct tnode 5 { 6 int mark; 7 tnode *next[10]; 8 }tnode; 9 tnode *root; 10 void init() 11 { 12 int i; 13 root=(tnode*)malloc(sizeof(tnode)); 14 for(i=0;i<10;i++) 15 root->next[i]=NULL; 16 root->mark=0; 17 18 } 19 int insert(char *str) 20 { 21 tnode *r=root,*child; 22 int i,flag=0; 23 while(*str!='\0') 24 { 25 if(r->next[*str-'0']==NULL) 26 { flag=1; 27 child=(tnode*)malloc(sizeof(tnode)); 28 for(i=0;i<10;i++) 29 child->next[i]=NULL; 30 child->mark=0; 31 r->next[*str-'0']=child; 32 33 34 } 35 if(r->next[*str-'0']->mark==1){flag=0;break;} 36 r=r->next[*str-'0']; 37 str++; 38 39 } 40 r->mark=1; 41 if(!flag) return 1; 42 else return 0; 43 } 44 void del(tnode *r) 45 { 46 for(int i=0;i<10;i++) 47 { 48 if(r->next[i]!=NULL) 49 del(r->next[i]); 50 } 51 free(r); 52 } 53 54 int search(char *str) 55 { 56 tnode *r=root; 57 int i=0,len,j; 58 len=strlen(str); 59 for(j=0;j<len-1;j++) 60 { 61 r=r->next[str[i]-'0']; 62 } 63 for(i=0;i<10;i++) 64 if(r->next[i]!=NULL) 65 return 1; 66 return 0; 67 } 68 int main() 69 { 70 int T,n,i,flag,mark; 71 char num[10005][20],ch; 72 scanf("%d",&T); 73 while(T--) 74 { 75 scanf("%d",&n); 76 ch=getchar(); 77 init(); 78 gets(num[0]); 79 flag=insert(num[0]); 80 mark=0; 81 for(i=1;i<n;i++) 82 { 83 gets(num[i]); 84 flag=insert(num[i]); 85 if(flag)mark=1;; 86 } 87 88 89 if(mark)printf("NO\n"); 90 91 else printf("YES\n"); 92 del(root); 93 94 } 95 96 return 0; 97 }
---恢复内容结束---
转载于:https://www.cnblogs.com/leeshum/archive/2013/04/17/3027112.html
HDU1671-Phone List (trie树)相关推荐
- usaco Cowxor (trie 树)
没想到trie树还可以用在这上面,厉害厉害. [分析]这是字母树的经典应用.首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可. [cpp] view plaincopy for ...
- 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...
- 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全
文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...
- POJ 2418 Hardwood Species(trie 树)
题目链接 开始想用map的,字典序不会搞,还是老老实实的用trie树把.好久没写了,忘得差不多了. 1 #include <iostream> 2 #include <cstdio& ...
- 【bzoj3261】最大异或和 可持久化Trie树
题目描述 给定一个非负整数序列 {a},初始长度为 N. 有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1. 2.Q l r x: ...
- 算法 | 动画+解析,轻松理解「Trie树」
Trie这个名字取自"retrieval",检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词. 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 ...
- 浅谈树形结构的特性和应用(上):多叉树,红黑树,堆,Trie树,B树,B+树......
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 上篇文章我们主要介绍了线性数据结构,本篇233酱带大家看看 无所不 ...
- Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)
题目大题 题目大意: 解题思路: 首先我们对于子树u的SG函数为SG函数为SG函数为 ⨁是异或和\bigoplus是异或和⨁是异或和 SG[u]=mex{⨁w∈(w的父亲在u到v的路径上)SG[w]∣ ...
- SZUACM集训字符串基础总结: 字符串最小表示 ,KMP, EXKMP, Manracher, Trie树,字符串的hash; 附带一写常见的运用技巧,邝斌大佬的板子和例题[持续更新]
第一部分 字符串的匹配<-------->KMP 模式匹配:子串的定位运算称为串的模式匹配或串匹配. 假设有两个串S,T,设S为主串,也称正文串,T为子串,也称为模式,在主串S中查找与模式 ...
- BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...
最新文章
- mac80211解析之发送速率控制
- VTK:图片之ImageOpenClose3D
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1106:年龄与疾病
- 我三年开发经验,从字节跳动抖音离职后,吐血整理
- 第四篇:断路器(Hystrix)(Finchley版本)V2.0_dev
- 维信小程序button样式重写
- 将ini文件内容读出
- 系统设计和机器学习算法
- 优客365 v2.9版本 后台存在SQL注入
- 【2020年TI杯江苏省大学生电子设计竞赛回顾——C题:坡道行驶电动小车(江苏省二等奖)】
- 超分辨 :SRCNN
- android 微信开发文档,微信开放文档
- 【工具】用PPT排版打印海报时图片分辨率问题
- SQLserver安装程序无法打开注册表项 解决办法
- pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件
- 2020年常见的服务器都有哪些?都有什么优缺点?
- purifier 常用配置 保留 id 和 iframe
- python tkinter画布设置按钮对图片放大缩小_Tkinter可调整大小的对象Python画布
- 【推荐系统】DUPN:Deep User Perception Network
- c语言求出现次数最多的字符,保证你看懂
热门文章
- ios .a文件支持结构合并arm64 armv7 i386 x86_64
- 通过因特网连接Beaglebone Black
- Kali Linux安全渗透教程(内部资料)
- opencv python是什么_Python+OpenCV 十几行代码模仿世界名画
- 卡内基梅隆大学的研究人员提出新的源定位算法: SilenceMap,寻找大脑的静默区域...
- Python-EEG工具库MNE中文教程(1)-MNE中数据结构Raw及其用法简介
- 克隆真人语音只要1句话,AI问诊超96.4%全科医生!科大讯飞年度黑科技大秀,余承东都来了...
- 都2021年了,输入法还能怎么玩出花?百度智慧输入:toB商业化!
- 大货车事故频发,智能物流可减少19.9%事故率
- 3页论文被引用17915次!88岁物理学泰斗温伯格去世,霍金《时间简史》受他启发...