首页 > 其他分享 >字典树

字典树

时间:2022-09-28 22:12:46浏览次数:49  
标签:const int char && include 字典

开新坑了,好像是第3个了

#include<cstdio>
#include<string.h>
const int N = 2e6+5;
const int M = 131;
const int INF = 0x3f3f3f3f;
using namespace std;

int T,n,m,Ans,no;
int cnt[N],t[N][M];
char ch[N];

inline int getnum(char K)
{
	if(K>='A' && K<='Z') return K - 'A';
	else if(K>='a' && K<='z') return K - 'a' + 26;
	else return K -'0' + 52; 
}

inline void insert(char str[])
{
	int p = 0 , len = strlen(str);
	for(int i=0;i<len;i++)
	{
		int c = getnum(str[i]);
		if(!t[p][c]) t[p][c] = ++ no;
		p = t[p][c];
		cnt[p] ++ ;
	}
}

inline int Find(char str[])
{
	int p = 0 , len = strlen(str);
	for(int i=0;i<len;i++)
	{
		int c = getnum(str[i]);
		if(!t[p][c]) return 0;
		p = t[p][c];
	}
	return cnt[p] ;
}

signed main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&n,&m);
		for(int i=0; i<=no; i++)
		{
			cnt[i] = 0 ;
			for(int j=0; j<=M; j++)
				t[i][j]=0;
		}
		no = 0;
		for(int i=1;i<=n;i++)
		{
			scanf("%s",ch);
			insert(ch);
		}
		for(int i=1;i<=m;i++)
		{
			scanf("%s",ch);
			printf("%d\n",Find(ch));
		}
	}
} 

标签:const,int,char,&&,include,字典
From: https://www.cnblogs.com/Low-key-smile/p/16739737.html

相关文章

  • python中字典更新键(key)的方式
    字典中的键(key)是哈希类型,不可以直接修改,需要修改键值用以下方法.方法一:新增key其value为原key的value,删除原key及其对应的value demo1={'name':'小瓜',......
  • 学习笔记:python:字典删除问题
    python学习:字典学习问题:如何删除字典中的一类元素题目:删除字典friends中年龄大于23的friend一个个删除明显达不到考察的目的,所以刚开始我的想法是:利用循环遍历字典中的......
  • C#字典操作
    1.创建一个字典Dictionary<stirng,int>dictionary=newDictionary<string,int>();2.在字典中添加元素dictionary.Add("张三",56);dictionary.Add("李四",21);dic......
  • Python列表、元组、字典、集合区别
    一、列表 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的  2.通过偏移读取 组成列表的值叫做元素(Elements)。每一个元素被标识一个......
  • 字典
    字典#创建字典info={'stu01':'zhangsan','stu02':'lisi','stu03':'wangwu'}#增加或者更改info['stu04']='zhaoliu'info.setdefault('stu01'......
  • TrieTree(字典树)
    TrieTree(字典树)定义TrieTree,,字典树,又叫前缀树,单词查找树,是一种针对字符串前缀进行维护的数据结构,给定一个字符串集合构建的前缀树,可以在树中查找字符串或者字符串的......
  • Trie树(字典树,前缀树)
    Trie中文名又叫做字典树,前缀树等,因为其结构独有的特点,经常被用来统计,排序,和保存大量的字符串,经常见于搜索提示,输入法文字关联等,当输入一个值,可以自动搜索出可能的选择。当......
  • 在Winform开发中,我们使用的几种下拉列表展示字典数据的方式
    在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷、统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔......
  • 字典树-2416. 字符串的前缀分数和
    问题描述给你一个长度为n的数组words,该数组由非空字符串组成。定义字符串word的分数等于以word作为前缀的words[i]的数目。例如,如果words=["a","ab......
  • 复习元组列表字典
    元组能存储多个不同类型的数据,且是有序的。但它是不可变的,因此不能进行修改、删除或添加元素的操作。列表和元组非常相似,唯一的不同是列表的元素是可以修改的。字典的元素......