AcWingTrie树

news2024/9/20 14:35:57

字典树的应用背景:
看以下几个题:
1、给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过
答:简单!map,短小精悍。
好。下一个
每次询问一个前缀,回答询问是多少个单词的前缀。2、给出n个单词和m个询问,
答:map,把每个单词拆开。
judge:n<=200000,TLE!
这就需要一种高级数据结构-Trie树(字典树)
在这里插入图片描述

截图的是--------------------------->Bilibili:董晓算法的内容
代码里面a是存储Trie树节点用的,a[p][u],里面u是表示英文字符
字符
‘a’->0,
‘b’->1,
‘c’->2
p是代表第p个节点,a[p][u]值为k,那么k仅代表了编号
cnt[p]是代表了以p节点结尾这个单词出现次数!
在这里插入图片描述

这个trie树的知识点比较固定,似乎没有什么东西,死记硬背就好了

#include<iostream>
#include<string>
using namespace std;
#define MAX 100086
int N,a[MAX][27],idx,cnt[MAX];
string x,op;

int query(string& ele){
    int p=0;
    for(int i=0;ele[i];++i){
        int u=ele[i]-'a';
        if(!a[p][u]){
            return 0;
        }
        p=a[p][u];
    }
    return cnt[p];
}
void insert(string& ele){
    int p=0;
    for(int i=0;ele[i]!='\0';++i){
        int u=ele[i]-'a';
        if(!a[p][u]){
            a[p][u]=++idx;
        }
        p=a[p][u];
    }
    cnt[p]++;
}
int main(){
    cin>>N;
    while(N--){
        cin>>op>>x;
        if(op=="Q"){
            cout<< query(x) <<endl;
        }else if(op=="I"){
            insert(x);
        }
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬核!288页Python核心知识笔记(附思维导图,建议收藏)

不少朋友在学习Python时&#xff0c;都会做大量的笔记&#xff0c;随着学习进度的增加&#xff0c;笔记越来越厚&#xff0c;但有效内容反而越来越少。 今天就给大家分享一份288页Python核心知识笔记&#xff0c;相较于部分朋友乱糟糟的笔记&#xff0c;这份笔记更够系统地总结…

软件项目管理工具排行榜:国内外优劣对比

项目管理工具对项目开发的重要性不言而喻&#xff0c;通过对比业内对各个项目管理工具的认可度&#xff0c;筛选出人们公认的软件项目管理工具排行榜&#xff0c;具体详细如下&#xff1a; 1、Microsoft Project 简介&#xff1a;Microsoft Project是一款强大的基于云的项目管理…

【数据结构】包装类和泛型

&#x1f389;欢迎大家收看&#xff0c;请多多支持&#x1f339; &#x1f970;关注小哇&#xff0c;和我一起成长&#x1f680;个人主页&#x1f680; ⭐在更专栏Java ⭐数据结构 ⭐已更专栏有C语言、计算机网络⭐ &#x1f451;目录 包装类&#x1f319; ⭐基本类型对应的包…

4款一眼万年的精品软件,免费又好用,可惜很多人不知道

各位Windows用户&#xff0c;有没有觉得自带的播放器不太好用&#xff1f;曾经用过暴风影音、QQ影音、迅雷看看和快*等等国产播放器的大佬们&#xff0c;估计小孩都上小学了吧。 PotPlayer 这款PotPlayer视频播放器&#xff0c;它占用空间小&#xff0c;功能丰富强大&#xf…

【Qt】为什么Qt是你选择的理由?

目录 客户端 图形化界面 Windows环境下可以开发GUI的方案 Qt介绍 Qt的发展史 Qt所支持的平台 Qt版本 Qt的优点 Qt的应用场景 Qt的行业发展方向 Qt的发展前景 使用Qt的成功案例 一般来说&#xff0c;计算机的岗位有四种&#xff0c;分别是&#xff1a; 后端前端测试…

Golang通用代码生成器:仙童 电音仙女尝鲜版八,从MySQL8自动反射生成项目

Golang通用代码生成器&#xff1a;仙童 电音仙女尝鲜版八&#xff0c;从MySQL8自动反射生成项目 Golang通用代码生成器仙童&#xff0c;电音仙女尝鲜版八&#xff0c;此版本增强修复了数据库自动反射功能。更新修复了前端代码生成器无登录模块时的错误。修复了多对多候选的缺陷…

乐鑫原厂ESP32-S3模块ESP32-S3-WROOM-1区别与比较

乐鑫原厂ESP32-S3对外发售的模块&#xff0c;公开的有3类5种&#xff0c;分别是&#xff1a; 1&#xff0c;ESP32-S3-WROOM-1 模组 2&#xff0c;ESP32-S3-WROOM-1U 模组 3&#xff0c;ESP32-S3-WROOM-2 模组 4&#xff0c;ESP32-S3-MINI-1 模组 5&#xff0c;ESP32-S3-MINI-1…

Java对象流

对象流 对象输入流 java.io.ObjectInputStream使用对象流可以进行对象反序列化 构造器 ObjectInputStream(InputStream in) 将当前创建的对象输入流链接在指定的输入流上 方法 Object readObject() 进行对象反序列化并返回。该方法会从当前对象输入流链接的流中读取若干…

Python写UI自动化--playwright(在UI元素上悬停)

要在UI元素上执行鼠标悬停&#xff08;hover&#xff09;动作&#xff0c;可以使用page.hover()方法。这个方法使鼠标指针移动到指定的元素上&#xff0c;就像用户将鼠标悬停在该元素上一样。这对于触发那些依赖于鼠标悬停事件的行为&#xff08;如显示下拉菜单、提示框或其他动…

【数据结构】哈希表(散列表)

介绍 哈希表&#xff08;也叫散列表&#xff09;&#xff0c;是根据关键码值&#xff08; Key value &#xff09;而直接进行访问的数据结构&#xff0c;也就是说&#xff0c;它通过把关键码值映射到表中的一个位置来访问记录&#xff0c;以加快查找的速度。这个映射函数叫做散…

“您的连接不是私密连接”怎么解决?

遇到“您的连接不是私密连接”的警告时&#xff0c;这通常意味着浏览器无法与网站建立安全的加密连接&#xff0c;可能是因为网站的SSL证书存在问题或网络连接存在安全风险。 1、清除浏览器缓存和Cookies&#xff1a;清除浏览器缓存和Cookies有时可以解决这个问题&#xff0c;因…

在Qt中获取Windows中进程的PID

主要是用到了系统自带的工具【tasklist.exe】 利用 QProcess调用这个tasklist有一点坑&#xff0c;已经在代码中指出了。 指定为csv格式输出的话&#xff0c;在后处理时比较方便。 QList<quint64> listProcessIdentifier(QString processName) {QProcess process;QStrin…

华为OD应聘最全流程!!!

第一步&#xff1a;投递简历 提供姓名、邮箱、手机号、身份证号&#xff0c;务必慎重考虑&#xff0c;因为此后会被锁定在特定项目组。&#x1f4dd;&#x1f512; 这一步在招聘站点搜索一下即可&#xff0c;主要选择目标城市和岗位&#xff0c;一般投递之后就会有 HR 联系&…

springboot系列教程(三十):springboot整合Zookeeper组件,管理架构中服务协调

一、Zookeeper基础简介 1、概念简介 Zookeeper是一个Apache开源的分布式的应用&#xff0c;为系统架构提供协调服务。从设计模式角度来审视&#xff1a;该组件是一个基于观察者模式设计的框架&#xff0c;负责存储和管理数据&#xff0c;接受观察者的注册&#xff0c;一旦数据…

Tamato

1.导入靶机&#xff0c;扫端口目录 访问tomato/antibot_image/ 访问/antibot_image/antibots/info.php&#xff0c;右击查看源代码&#xff0c;发现文件包含漏洞 2.漏洞利用&#xff0c;在url后输入?image/etc/passwd,有显示&#xff0c;存在文件包含漏洞 发现端口没有全部扫描…

公网IP与内网IP的核心区别及辨别方法

今天我们来聊聊公网IP和内网IP的区别&#xff0c;以及如何区分这两者。在互联网时代&#xff0c;了解这些基础知识有助于我们更好地管理网络和设备。 公网IP与内网IP的区别 1. 定义和用途 公网IP&#xff1a;也称为外网IP&#xff0c;是由互联网服务提供商&#xff08;ISP&a…

现在还有一年期SSL证书吗?具体该怎么申请?

SSL证书&#xff0c;全称为Secure Sockets Layer Certificate&#xff08;安全套接层证书&#xff09;&#xff0c;是一种用于在互联网上验证网站身份和加密通信的数字证书。它类似于现实生活中的驾驶证、护照或营业执照的电子副本&#xff0c;但专门用于网络环境。SSL证书由受…

如何构建自己的交易机器人开发环境

作者&#xff1a;老余捞鱼 原创不易&#xff0c;转载请标明出处及原作者。 写在前面的话&#xff1a; 本文主要讲解如何构建一个交易机器人开发环境。描述具体的步骤和工具&#xff0c;包括使用 GitHub Codespaces、Visual Studio Code&#xff08;VS Code&#xff09;…

线上教育在线课堂知识付费小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 线上教育在线课堂知识付费小程序源码系统&#xff0c;是一款专为教育机构、个人讲师及知识创作者设计的综合性在线教育平台解决方案。该系统基于微信小程序框架开发&#xff0c;充分利用了微信庞大的用户基础和高粘性的社交属性&#xff0c;为教育内容的传播与变现提…

Publisher - hackmyvm

简介 靶机名称&#xff1a;Publisher 难度&#xff1a;简单 靶场地址&#xff1a;https://hackmyvm.eu/machines/machine.php?vmPublisher 本地环境 虚拟机&#xff1a;vitual box 靶场IP&#xff08;Publisher&#xff09;&#xff1a;192.168.56.123 跳板机IP(window…