当前位置: 首页 > news >正文

8.1每日一题

P10470 前缀统计 - 洛谷

题目描述

给定 N 个字符串 S1​,S2​⋯SN​,接下来进行 M 次询问,每次询问给定一个字符串 T,求 S1​∼SN​ 中有多少个字符串是 T 的前缀。

输入字符串的总长度不超过 106,仅包含小写字母。

输入格式

第一行输入两个整数 N,M。

接下来 N 行每行输入一个字符串 Si​。

接下来 M 行每行一个字符串 T 用以询问。

输出格式

对于每个询问,输出一个整数表示答案。

每个答案占一行。

输入输出样例

输入 #1复制

3 2
ab
bc
abc
abc
efg

输出 #1复制

2
0

说明/提示

数据范围满足 1≤N,M≤105

经典的trie板子。

做一个trie树就好了,看代码

#include<bits/stdc++.h>
using namespace std;
struct trid
{int end;//end的数量int next[30];//指向下一个的索引
}node [1000000];
int cnt = 1;
void add(string s)//插入一个字符串
{int len = s.length();int now = 0;for (int i = 0; i < len; i++){if(!node[now].next[s[i] - 'a'])//看看是否建立了这个索引node[now].next[s[i] - 'a'] = cnt++;//指向下一个索引now = node[now].next[s[i] - 'a'];}node[now].end++;
}
void find(string s)//寻找前缀有多少个
{int len = s.length();int now = 0;int ans = 0;for (int i = 0; i < len; i++){if (node[now].next[s[i] - 'a'])now = node[now].next[s[i] - 'a'];elsebreak;ans += node[now].end;}cout << ans << endl;
}
int main()
{int n, m;cin >> n >> m;string s;for (int i = 0; i < n; i++){cin >> s;add(s);}for (int i = 0; i < m; i++){cin >> s;find(s);}return 0;
}

http://www.lryc.cn/news/607580.html

相关文章:

  • Vue 3 入门教程 8 - 路由管理 Vue Router
  • 使用GPU和NPU视频生成的优劣对比
  • Windows系统优化命令-记录
  • 面向对象学习(一)
  • 【Linux我做主】细说环境变量
  • Vue2 项目实现 Gzip 压缩全攻略:从配置到部署避坑指南
  • IIS 让asp.net core 项目一直运行
  • TwinCAT3编程入门2
  • 第k小整数(快排)
  • 如何理解卷积,和自注意力机制的局限与优势(个人理解)
  • 倒计时!2025国自然放榜时间锁定
  • 使用Nginx部署前端项目
  • 【Linux】磁盘存储+文件系统简介
  • 开箱即用的Next.js SSR企业级开发模板
  • Java Ai 数组:day(09)
  • 【Nginx反向代理】通过Nginx反向代理将多个后端server统一到同一个端口上的方法
  • 算法题——数组
  • Implement recovery based on PITR using dump file and binlog
  • Deep Height Decoupling for Precise Vision-based 3D Occupancy Prediction
  • 【JAVA面试】基础篇
  • 代码随想录算法训练营三十三天|动态规划part06
  • GenieWizard: Multimodal App Feature Discovery with LargeLanguage Models
  • 直播平台中的美白滤镜实现:美颜SDK的核心架构与性能优化指南
  • Java 22 新特性解析与代码示例
  • Corrosion2靶机攻略
  • three.js实现随机山脉波纹效果
  • 【LeetCode刷题指南】--单值二叉树,相同的树
  • RustFS:高性能文件存储与部署解决方案(MinIO替代方案)
  • session和cookie作用详解
  • Solana:解决Anchor Build编译程序报错 no method named `source_file` found for struct