news 2026/5/2 2:27:05

洛谷 P8306 【模板】字典树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷 P8306 【模板】字典树

题目描述

给定 n 个模式串 s1​,s2​,…,sn​ 和 q 次询问,每次询问给定一个文本串 ti​,请回答 s1​∼sn​ 中有多少个字符串 sj​ 满足 ti​ 是 sj​ 的前缀

一个字符串 t 是 s 的前缀当且仅当从 s 的末尾删去若干个(可以为 0 个)连续的字符后与 t 相同。

输入的字符串大小敏感。例如,字符串Fusu和字符串fusu不同。

输入格式

本题单测试点内有多组测试数据

输入的第一行是一个整数,表示数据组数 T。

对于每组数据,格式如下:
第一行是两个整数,分别表示模式串的个数 n 和询问的个数 q。
接下来 n 行,每行一个字符串,表示一个模式串。
接下来 q 行,每行一个字符串,表示一次询问。

输出格式

按照输入的顺序依次输出各测试数据的答案。
对于每次询问,输出一行一个整数表示答案。

输入输出样例

输入 #1复制

3 3 3 fusufusu fusu anguei fusu anguei kkksc 5 2 fusu Fusu AFakeFusu afakefusu fusuisnotfake Fusu fusu 1 1 998244353 9

输出 #1复制

2 1 0 1 2 1

说明/提示

数据规模与约定

对于全部的测试点,保证 1≤T,n,q≤105,且输入字符串的总长度不超过 3×106。输入的字符串只含大小写字母和数字,且不含空串。

说明

std 的 IO 使用的是关闭同步后的 cin/cout,本题不卡常。

#include<bits/stdc++.h> using namespace std; const int N=3e6+10; int tr[N][62]; int p[N]; int idx; int T,n,q; string s; int get_num(char x) { if(x>='a'&&x<='z') return x-'a'; else if(x>='A'&&x<='Z') return x-'A'+26; else return x-'0'+52; } void insert(string& s) { int cur=0; p[cur]++; for(auto x:s) { int path=get_num(x); if(tr[cur][path]==0) tr[cur][path]=++idx; cur = tr[cur][path]; p[cur]++; } } int find_pre(string& s) { int cur =0; for(auto x: s) { int path=get_num(x); if(tr[cur][path]==0) return 0; cur=tr[cur][path]; } return p[cur]; } int main() { cin>>T; while(T--) { //清空 for(int i=0;i<=idx;i++) { for(int j=0;j<62;j++) { tr[i][j]=0; } } for(int i=0;i<=idx;i++) p[i]=0; idx=0; cin>>n>>q; while(n--) { cin>>s; insert(s); } while(q--) { cin>>s; cout<<find_pre(s)<<endl; } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:22:03

【L4级自动驾驶感知架构设计】:详解动态障碍物预测与语义地图融合技巧

第一章&#xff1a;自动驾驶Agent环境感知概述自动驾驶Agent的环境感知是实现智能驾驶决策与控制的核心前提。通过融合多种传感器数据&#xff0c;系统能够实时构建车辆周围环境的动态模型&#xff0c;为路径规划和行为预测提供可靠输入。感知系统的组成架构 自动驾驶感知系统通…

作者头像 李华
网站建设 2026/5/1 11:14:01

零售连锁门店数字化变革,高效管理系统成关键

如今&#xff0c;零售行业朝着深度数字化迈进&#xff0c;连锁门店的经营管理正历经深刻变革&#xff0c;传统依靠手工记账、经验决策以及多套独立系统的模式&#xff0c;效率不单低下&#xff0c;还极难应对全渠道融合与数据驱动的市场新环境&#xff0c;一套高效的数字化管理…

作者头像 李华
网站建设 2026/5/1 11:42:50

【气象 Agent 预测精度提升实战】:揭秘AI模型优化背后的5大核心技术

第一章&#xff1a;气象 Agent 预测精度提升的背景与挑战随着人工智能与边缘计算技术的发展&#xff0c;气象预测系统逐步从集中式模型向分布式智能 Agent 架构演进。气象 Agent 作为具备自主感知、决策与通信能力的智能单元&#xff0c;广泛部署于气象观测网络中&#xff0c;承…

作者头像 李华
网站建设 2026/5/1 11:17:07

为什么你的质检AI总漏检?:直击工业Agent精度瓶颈的4个技术盲区

第一章&#xff1a;为什么你的质检AI总漏检&#xff1f;在工业质检场景中&#xff0c;AI模型看似精准&#xff0c;却频繁出现漏检问题&#xff0c;背后原因往往被归结为“数据不够”或“模型太弱”&#xff0c;但真实情况更为复杂。许多企业忽视了数据质量、标注一致性以及实际…

作者头像 李华
网站建设 2026/4/23 2:58:23

18、Linux 后台办公基础架构的开源解决方案

Linux 后台办公基础架构的开源解决方案 在企业环境中,开源解决方案正发挥着越来越重要的作用,能够满足各种不同的业务需求。下面将介绍一些值得关注的开源工具和系统。 1. 开源数据库管理工具 myPHPadmin 是一款基于 Web 的开源 MySQL 数据库管理工具,它为数据库管理提供…

作者头像 李华
网站建设 2026/5/1 9:55:31

46、Linux 共享对象与内存问题调试指南

Linux 共享对象与内存问题调试指南 1. 创建共享对象 从概念上讲,共享对象和程序的唯一区别通常在于共享对象一般没有 main 函数,但这并非硬性要求。你可以创建既能像可执行文件一样被调用,又能动态链接到更大程序中的共享对象,动态链接器本身就是这样的共享对象,本章前…

作者头像 李华