可持久化Trie树
2024-08-23 13:55:43
代码
const int ChSize=;
struct PerTrie
{
int next[maxn*][ChSize];
int id,inf[maxn*];
void init()
{
memset(next[],,sizeof(next[]));
inf[]=;
id=;
}
int GetId(char c){ return c-'a'; }
void Insert(int& rt,int pre,char* S,int x) //插入
{
rt=++id;
inf[rt]=inf[pre]+;
for(int i=;i<ChSize;i++) next[rt][i]=next[pre][i]; //把前面的赋给当前
if(S[x]=='\0') return;
Insert(next[rt][GetId(S[x])],next[pre][GetId(S[x])],S,x+);
}
int Query(int le,int ri,char* S) //查询[le,ri]
{
for(int i=;S[i]!='\0';i++)
{
int s=GetId(S[i]);
le=next[le][s];
ri=next[ri][s];
}
return inf[ri]-inf[le];
}
}PT;
最新文章
- Android的RecyclerView
- goldengate studio 12.2.1.2.6发布
- IE8控件安装方法
- python 脚本传递参数
- yii 隐藏index.php的步骤
- O-C相关04:类方法的概述与定义和调用
- 黑马程序员_Java其他对象(System,Runtime,Date,Calendar,Marh-Random)
- 游戏UI框架设计(一) : 架构设计理论篇
- python模拟登陆Github示例
- 括号配对问题-java:Stack
- 在linux环境下用中文查询数据库
- iis8使用url2.0模块实现http跳转到https
- 利用PHP连接数据库操作用户注册、审核与登录页面
- jsp/servlet学习一之servlet初窥
- 安装阿里云github提供的修改版minikube
- JavaScript面向对象之闭包的理解
- BZOJ 3707 圈地
- Video Processing and Communications:(视频处理和通信)
- 服务信息块协议 SMB(Server Message Block protocol)
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课