首页 > 其他分享 >字典树模板

字典树模板

时间:2023-12-04 12:55:54浏览次数:22  
标签:cnt now int ++ nex trans 模板 字典

#include <bits/stdc++.h>
using namespace std;

struct trie {
    int n;
    vector<array<int, 26>> trans;
    vector<int> cnt;
    trie() : n(0) { new_node(); }
    int new_node() {
        trans.push_back({});
        trans.back().fill(0);
        cnt.push_back(0);
        return n++;
    }
    int insert(const string &s) {
        int now = 0;
        for (char c : s) {
            int i = c - 'a';
            if (!trans[now][i]) {
             trans[now][i] = new_node(); 
           }
            now = trans[now][i];
            cnt[now]++;
        }
        return now;
    }
};

struct trie2 {//常规
  int nex[100010][26], cnt;
  bool exist[100010];  

  void insert(string s) { 
    int p = 0;
    for (int i = 0; i < s.size(); i++) {
      int c = s[i] - 'a';
      if (!nex[p][c]) nex[p][c] = ++cnt;
      p = nex[p][c];
    }
    exist[p] = 1;
  }

  bool find(string s) {
    int p = 0;
    for (int i = 0; i < s.size(); i++) {
      int c = s[i] - 'a';
      if (!nex[p][c]) return 0;
      p = nex[p][c];
    }
    return exist[p];
  }
};

标签:cnt,now,int,++,nex,trans,模板,字典
From: https://www.cnblogs.com/Kescholar/p/17874686.html

相关文章

  • 实体类(多层嵌套)生成FastReport需要的frd字典文件
    #region根据模型生成FastReport需要的Frd字典文件///<summary>///生成frd文件内容///</summary>privatestaticStringBuilderstringTouBu=newStringBuilder();///<summary>///根据模型生成FastReport需要的F......
  • 记录ssti模板学习 (1)
    记录ssti模板学习Python3-venv(简称虚拟机编译器)创建venv环境安装flask创建环境python3-mvenvflask1在flask1下使用虚拟机内的python3执行方法一:/opt/flask/bin/python3demo.py方法二:source./bin/activate退出环境deactivateFlask学习Flask就是使用python编写......
  • python基础-字典
    1、字典定义字典是一种可变的容器,可以存储任意类型的数据字典中的每个数据都是用"键"(key)进行索引,而不像序列可以用下标进行索引【集合可以用下标进行搜索】字典中的数据没有先后关系,字典的存储是无序的【集合set存储也是无序的】字典的表示方式是以{}括起来,以冒号(......
  • Top Tree 模板(咕)
    Sone1调不动了,所以是lgP3690。写着写着就不知道自己写的是AAAT还是SATT了,反正能用。#include<iostream>#include<vector>#include<cassert>#defineUP(i,s,e)for(autoi=s;i<e;++i)usingstd::cin;usingstd::cout;constexprintN=1e5,M=3e5;namespac......
  • 一键导出数据库中表结构定义(数据字典)的工具
    导出数据库中标的定义,即所谓的数据字典一、新建maven工程中加入依赖在maven工程的pom.xml中添加依赖<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency>......
  • 使用样式表和 rcParams字典自定义 Matplotlib属性和样式
    3种方式自定义Matplotlib的属性和样式1.运行时通过rcParams字典动态设置2.使用样式表3. 更改matplotlibrc文件在运行时设置rcParams优先于样式表、样式工作表优先于文件matplotlibrc即1>2>31. 运行时通过rcParams字典动态设置通过字典matplotlib.rcParams,动态修改......
  • 在OI类竞赛中经常使用的C++STL模板类
    vector变长数组vector的初始化vector<int>a;//定义一个空的vector,且元素类型为intvector<int>a(n);//定义一个长度为n,元素类型为int的vector,且每个元素都是0vector<int>a(n,x);//定义一个长度为n,元素类型为int,且每个元素都是x的vectorvector<int>b(a);//定义一......
  • 二分图最大匹配模板(匈牙利算法)
    二分图最大匹配模板(匈牙利算法)P3386【模板】二分图最大匹配-洛谷|计算机科学教育新生态(luogu.com.cn)structaugment_path{ vector<vector<int>>g; vector<int>pa;//匹配 vector<int>pb; vector<int>vis;//访问 intn,m;//两个点集中的顶......
  • 软件设计实验 24:模板方法模式
      实验24:模板方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法模式的动机,掌握该模式的结构;2、能够利用模板方法模式解决实际问题。 [实验任务一]:数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我......
  • 统信UOS/麒麟KYLINOS设置用户模板
    原文链接:统信UOS/麒麟KYLINOS设置用户模板hello,大家好啊,今天给大家带来一篇关于修改用户模板的文章,结合我们之前制作ISO镜像及制作云桌面用户模板的文章,可以一同使用。本篇文章对用户模板的五个方面进行了设置,都是一些很简单的操作,大家可以根据示例进行延伸操作,本文只是提供一种思......