最新要闻
- 马斯克将于3月1日公布特斯拉宏图第三篇章 第二篇章已烂尾
- 世界观速讯丨国产车企1:1复刻几十年前的MINI外观专利 宝马抗议!结果判了
- 【独家焦点】真心没想到!五旬男子开车撞上护栏:只因刚割了双眼皮
- 全球热消息:全世界最后一只袋狼究竟是怎么死的?
- 民企第一只 京东仓储REIT上市:认购额超718亿元遭疯抢
- 微动态丨暴躁小钢炮!极氪X实车亮相:零百加速3秒级
- 环球微速讯:《仙剑奇侠传》《和平精英》梦幻联动:赵灵儿端枪吃鸡
- 啥身材都能包!真维斯连帽卫衣大促:日常100元 现价50到手
- 6年来苹果iPhone涨价近50% 还会继续涨 库克不怕没人买
- 《流浪地球2》导演郭帆:国产科幻片工业流程还是初级 吃饭都会出大错误
- 童话二分之一的大结局是什么?童话二分之一演员表
- 金棕色适合什么肤色?金棕色和金栗色茶色的区别有哪些?
- 回避型人格障碍的表现有哪些?回避型人格障碍怎么治疗?
- 升学宴是什么意思?学生升学宴家长答谢宴致辞
- 货柜标准尺寸是多少?货柜集装箱尺寸规格表
- 观点:零跑汽车创始人:有信心在一些环节超越特斯拉
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点播报:算法学习笔记(15): Trie(字典树)
Trie树
Trie(字典树)是一种用于实现字符串检索的多叉树。
(资料图片)
Trie的每一个节点都可以通过 c
转移到下一层的一个节点。
我们可以看作可以通过某个字符转移到下一个字符串状态,直到转移到最终态为止。这是后话……
我们以插入了字符串 ab
,aa
,b
三个字符串的Trie树为例:
其实一看图就非常清晰了
在上图中,如果我们需要继续插入一个字符串 abc
,那么就只需要新建一个节点即可
思路清晰,那么代码如何实现?
- 首先是插入部分:
struct Node { int kids[65]; int cnt;} nodes[N];#define kids(p, j) nodes[p].kids[j]#define cnt(p) nodes[p].cntvoid insert(char * s, int len) { int p = 0; for (int i = 0; i < len; ++i) { int j = discrete(s[i]); if (!kids(p, j)) kids(p, j) = ++usage; // 新建节点 p = kids(p, j); }++cnt(p);}
discrete指的是离散化,例如这里是将
a-z
用0-25
表示
最终的 cnt
表示有几个字符串在当前节点结束。
- 然后是查询部分
我们还是利用类似的思路,一个一个向下走。
例如我们要查询字符串 aba
,那么我们从根节点 0
开始,通过 a
走到 1
节点,通过 b
走到 4
节点,发现没有 a
的子节点,表明没有这个字串,结束寻找。
// 这里是查询这个字符串出现了多少次,为0就是没有出现int count(char * s, int len) { int p = 0; for (int i = 0; i < len; ++i) { int j = discrete(s[i]); if (!kids(p, j)) return 0; p = kids(p, j); } return cnt(p);}
其实主要操作就这两个,我们考虑一下空间和时间复杂度:
时间复杂度很明显是与字符串长度相关的,我们每处理一个字符走一个节点,也就是 \(O(L)\) 的复杂度,那么总的复杂度就是 \(O(NL)\)
至于空间复杂度,每处理一个字符串至多新建 \(L\) 个节点,那么就是 \(O(L)\) ,每一个节点的大小关乎字符串的字符集大小,所以我们认为是 \(O(C)\) 那么总共就是 \(O(NLC)\) ,但是,在实际中,远远达不到此复杂度(除非毒瘤出题人想卡你),例如最初的图,一共 4 个字符串,但是只有 5 个节点……
例题
【模板】字典树 - 洛谷
注意题意,以询问所给作为前缀,求有多少个字符串满足此前缀
那么我们需要魔改一下
insert
函数即可……将++cnt(p)
放入循环中即可还请读者仔细思考
[USACO12DEC]First! G - 洛谷
这道题非常的神奇……考虑先建Trie树,如果某一个字符串的字典序比其他任何字符串都大,那么一定不存在为其前缀的字符串。
再考虑字典序,如果使
s
其字典序最大,那么每一个分叉点上,s[i]
比其他所有存在的分叉都要大。如样例:
omm
,moo
,mom
。如果要使
omm
最大那么在第一层上满足o > m
,其他层上没有分叉。如果要使
moo
最大,那么第一层上满足m > o
,第三层上满足o > m
,条件相悖,所以不可行。其他同理。
那么我们如何判断条件相悖?可以借鉴
2-SAT
的思路,通过大于关系建图,如果存在环,那么不可行。判环用拓扑,谁用Tarjan啊
最终,每一个串判断一遍即可。
[BJOI2016]IP地址 - 洛谷
这道题就是Trie的一种特殊用法。
有点类似线段树的区间标记。
我们考虑改变一个规则对其整个子树都有影响,那么我们考虑什么时候影响抵消?更深的点会阻挡了标记的下传。那么我们记录一下各个点的标记情况,通过类似线段树的方法下传标记即可。
正确性显然。
扩展
Trie树实际上是 AC自动机 和 回文自动机 等自动机的载体,需要经过一点点小变换。
在此不展开叙述,详见我的其他文章。
-
今日讯!火山引擎 DataTester“智能发布”:覆盖产品研发、测试、上线全流程,一站式智能管理 A/B 实验
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群A B测试是企业产品新...
来源: 焦点播报:算法学习笔记(15): Trie(字典树)
今日讯!火山引擎 DataTester“智能发布”:覆盖产品研发、测试、上线全流程,一站式智能管理 A/B 实验
DB2教程_编程入门自学教程_菜鸟教程-免费教程分享
马斯克将于3月1日公布特斯拉宏图第三篇章 第二篇章已烂尾
世界观速讯丨国产车企1:1复刻几十年前的MINI外观专利 宝马抗议!结果判了
【独家焦点】真心没想到!五旬男子开车撞上护栏:只因刚割了双眼皮
全球热消息:全世界最后一只袋狼究竟是怎么死的?
民企第一只 京东仓储REIT上市:认购额超718亿元遭疯抢
当前视讯!C#(进制转换) NumberConversion
ChatGPT国内也能用吗?ChatGPT国内镜像站点分享给你们
微动态丨暴躁小钢炮!极氪X实车亮相:零百加速3秒级
环球微速讯:《仙剑奇侠传》《和平精英》梦幻联动:赵灵儿端枪吃鸡
啥身材都能包!真维斯连帽卫衣大促:日常100元 现价50到手
6年来苹果iPhone涨价近50% 还会继续涨 库克不怕没人买
《流浪地球2》导演郭帆:国产科幻片工业流程还是初级 吃饭都会出大错误
童话二分之一的大结局是什么?童话二分之一演员表
金棕色适合什么肤色?金棕色和金栗色茶色的区别有哪些?
回避型人格障碍的表现有哪些?回避型人格障碍怎么治疗?
天天快资讯丨袋鼠云数栈UI5.0焕新升级,全新设计语言DT Design,更懂视觉更懂你!
【世界热闻】芯驿电子发布车载系列产品全新品牌AUMO
速讯:仿制作图《这里是中国》封面
【天天播资讯】spring注解
升学宴是什么意思?学生升学宴家长答谢宴致辞
货柜标准尺寸是多少?货柜集装箱尺寸规格表
淘宝换购是什么意思?淘宝换购的东西是正品吗?
笔记本键盘怎么拆卸?笔记本电脑键盘拆卸方法
ddr2内存条还能用吗?ddr2和ddr3的区别有哪些?
爱奇艺弹幕开关在哪里?爱奇艺怎么关闭弹幕?
手机微信语音电话接不到是什么原因?手机微信语音没有声音是怎么回事?
观点:零跑汽车创始人:有信心在一些环节超越特斯拉
【全球热闻】大六缸白菜价!马自达CX-90售价公布:约27.8万元起
美国计划强制让电动汽车“发声” 20多年的老车也不放过
环球热资讯!冷空气今起发货!江南等地暴雨北方局地暴雪 出行注意
人民日报评智能电视套路收费:广告无法消除、会员一充再充
必应、Edge拥抱ChatGPT 微软一晚大赚5400多亿:AI时代已到
焦点报道:女子网上买iPhone 14收到一堆铁片 京东自营退一赔一
天天日报丨用ChatGPT搞钱年入百万!各路博主发布生财之道 网友回呛
今日讯!比亚迪秦PLUS DM-i 2023冠军版宣布2月10日发布:车机、续航全升级
精选!特斯拉跌落神坛?辅助驾驶横评仅得第七
必知必会的设计原则——依赖倒置原则
难怪发质没有变好!这么多年用吹风机竟用错了
每日快看:PC 10年来最大跌幅 2023依然寒气逼人:复活要靠Win10“死亡”
全球通讯!优化渣?《霍格沃兹之遗》3A游戏被指太吃硬件:8GB显存都不好意思打招呼
坐拥千万粉丝医生称女子因洁牙感染梅毒?口腔机构回应 权威科普来了
读Java实战(第二版)笔记04_用流收集数据
世界今热点:告别OLED!苹果2025年商用microLED:克服烧屏问题
【世界时快讯】一加杀入平板领域!一加Pad发布:天玑9000加持
观点:女子存款5万需提供个人收入证明引热议:回应来了
一文了解WiFi 7优势:网速快不是最大看点
全球聚焦:男子网恋5年转给对方1700万被骗 还是已婚男人:网友崩溃
全球信息:Go学习资料
阿里云产品-智能语音交互快速测评
世界快讯:“ChatGPT中文版”上线:遭国内网友爆破
三十年了 钠离子电池总算熬出头!取代铅酸、把锂价打下去
环球热门:女子取药时发现医生用手机追剧引争议 医院回应:核实后会处罚
看完狗头萝莉、胡鑫宇的遭遇 我想聊聊自杀这件事
当前头条:亚洲第一!中国火箭发动机试车台传喜讯
【全球报资讯】【LeetCode哈希表#4】梦开始的地方:两数之和(map),以及关于容器map的一些代码技巧
【全球独家】18寸终极发烧游戏本!ROG枪神7 Plus超竞版评测:首发i9-13980HX多核暴涨40%
杭州法华寺月薪8万招聘和尚?传授72绝技?假的
铁锅“”开锅“”有科学依据吗?为什么厂家不帮忙弄好?
《分布式技术原理与算法解析》学习笔记Day04
【独家】ASP.NET Core+Element+SQL Server开发校园图书管理系统(四)
快消息!E. Monsters (hard version)
日本国产大飞机研发失败:研发耗时十余年
当前视讯!大批《LOL》玩家逃离国服挤爆台服 拳头调查处理中
Blazor封装一个显示Markdown的组件
高层次综合器Vivado HLS的概念与特点[原创www.cnblogs.com/helesheng]
头条:为何突然爆红网络?小胖俞涛回应“九转大肠梗” 吃起来确实酸爽
【环球报资讯】天马认领:独家供应一加Ace 2 1.5K灵犀触控屏
世界报道:HashMap源码分析 (基于JDK1.8)
cmd的一些命令
焦点速看:Python教程:高级特性
天天快看点丨vue3 | slots
通讯!0糖0脂0卡 三种口味 哪吒气泡水1.66元/瓶史底
世界今亮点!逆天!男子称在国美买家电两年没到货 花费超两万
全球热消息:影驰首次涉足游戏显示器:27寸2K屏、165Hz高刷
奔驰史诗级调整:19款车将停产!不挣钱的不要
世界热门:宁德时代两大杀手级新品电池正式来了:新能源汽车市场要变天?
VGA、TFT显示模块——verilog实现
天天看热讯:智能运维|AIRIOT智慧光伏管理解决方案
定时任务
14.9mm纤薄机身惊艳:联想小新Air 14 2023烟霞紫亮相
观热点:1099元起 真我推出V30/V30t新机:天玑700入门U
环球热点评!3月1日上线全国外卖服务?抖音回应:无具体时间表
《GTA5》母公司T2 CEO:ChatGPT等AI将提高游戏行业的标准
记录--实时音视频功能简析(live-pusher与live-player)
当前资讯!全景剖析阿里云容器网络数据链路(三):Terway ENIIP
全球看点:Amazon RDS 教程_编程入门自学教程_菜鸟教程-免费教程分享
整合MQTT
当前简讯:京东一面:MySQL 中的 distinct 和 group by 哪个效率更高?问倒一大遍。。
业界功率最高!一加27W冰点散热背夹发布 219元
蔚来:自家充电桩仅24%时间给蔚来充电 比亚迪、特斯拉用爽了
世界微资讯!ChatGPT幕后创始人拿微软100亿 是在下一步大棋
【热闻】你出国耍吗?多条国际航班机票降至千元 泰国往返国内不到2000元
焦点观察:日产扛把子!新款轩逸/轩逸e-POWER官图发布:能救市吗?
3.SpringSecurity+登录功能+jwt校验过滤器+redis配置
当前消息!K8S的基础概念
今亮点!elementui中el-table表头动态筛选条件未及时更新问题解决
世界新消息丨C#高级编程2