P5357 【模板】AC 自动机

news/2025/11/28 22:24:49/文章来源:https://www.cnblogs.com/quchen-blog/p/19284319

题目背景

本题原为“AC 自动机(二次加强版)”。完成本题前可以先完成 AC 自动机(简单版) 和 AC 自动机(简单版 II) 两道题,为 AC 自动机更简单的应用。

题目描述

给你一个文本串 \(S\)\(n\) 个模式串 \(T_{1 \sim n}\),请你分别求出每个模式串 \(T_i\)\(S\) 中出现的次数。

输入格式

第一行包含一个正整数 \(n\) 表示模式串的个数。

接下来 \(n\) 行,第 \(i\) 行包含一个由小写英文字母构成的非空字符串 \(T_i\)

最后一行包含一个由小写英文字母构成的非空字符串 \(S\)

数据不保证任意两个模式串不相同

输出格式

输出包含 \(n\) 行,其中第 \(i\) 行包含一个非负整数表示 \(T_i\)\(S\) 中出现的次数。

输入输出样例 #1

输入 #1

5
a
bb
aa
abaa
abaaa
abaaabaa

输出 #1

6
0
3
2
1

说明/提示

对于 \(100 \%\) 的数据,\(1 \le n \le 2 \times {10}^5\)\(T_{1 \sim n}\) 的长度总和不超过 \(2 \times {10}^5\)\(S\) 的长度不超过 \(2 \times {10}^6\)

把这个数据加强版的代码稍加修改即可通过另外两题了

题解

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
typedef long long ll;
int n;
int tree[N][26];
int fail[N];
int cnt = 0;
int ed[N];
int t[N];
vector<int>e[N];void insert(int idx,string s)
{int u = 0;for(auto ch:s){int c = ch - 'a';if(tree[u][c]==0)tree[u][c] = ++cnt;u = tree[u][c];}ed[idx] = u;
} void setfail()
{queue<int>q;for(int c =0;c<26;++c){if(tree[0][c])q.push(tree[0][c]);}while(!q.empty()){int u = q.front();q.pop();for(int c=0;c<26;c++){if(tree[u][c]==0){tree[u][c] = tree[fail[u]][c];}else{fail[tree[u][c]] = tree[fail[u]][c];q.push(tree[u][c]);}}}
}void f1(int u)
{for(int v:e[u]){f1(v);t[u]+=t[v];}
}void solve()
{cin>>n;for(int i=1;i<=n;i++){string s;cin>>s;insert(i,s);}setfail();string text;cin>>text;int u = 0;for(auto ch:text){int c = ch-'a';u = tree[u][c];t[u]++;}for(int i=1;i<=cnt;i++){e[fail[i]].push_back(i);}f1(0);for(int i=1;i<=n;i++){cout<<t[ed[i]]<<endl;}
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--){solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/980145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式Session会话实现优秀的方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Revive Adserver存储型XSS漏洞技术分析

本文详细分析了Revive Adserver广告管理系统中的存储型XSS安全漏洞,涉及inventory-retrieve.php和campaign-edit.php文件,包含漏洞复现步骤、技术原理和修复方案,已分配CVE-2025-52667编号。Revive Adserver存储型X…

2025年终总结

多好的35岁,人生黄金期,全盛时期。 2024年年终总结写道:“2024年是个好年份。今年过得真好,有滋有味。果真人生至味是清欢。2024年第一次享受平静,第一次没有大的目标、计划、挑战。只是静心生活,学习,做事。20…

局域网---局域网传输文件及共享桌面

我想要在局域网内进行文件传输以及共享桌面,可以使用文件快传:https://transfer.52python.cn/软件界面:该软件可以联网使用,可以本地部署使用:打完收工!

P2709 【模板】莫队 / 小B的询问

题目描述 小 B 有一个长为 \(n\) 的整数序列 \(a\),值域为 \([1,k]\)。 他一共有 \(m\) 个询问,每个询问给定一个区间 \([l,r]\),求: \[\sum\limits_{i=1}^k c_i^2 \]其中 \(c_i\) 表示数字 \(i\) 在 \([l,r]\) 中…

并不打算的

光和热发货的干扰星级酒店工业

P1903 【模板】带修莫队 / [国家集训队] 数颜色 / 维护队列

题目描述 墨墨购买了一套 \(N\) 支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令:\(Q\ L\ R\) 代表询问你从第 \(L\) 支画笔到第 \(R\) 支画笔中共有几种不同颜色的画笔…

P1883 【模板】三分 / 函数

题目描述 给定 \(n\) 个二次函数 \(f_1(x),f_2(x),\dots,f_n(x)\)(均形如 \(ax^2+bx+c\)),设 \(F(x)=\max\{f_1(x),f_2(x),...,f_n(x)\}\),求 \(F(x)\) 在区间 \([0,1000]\) 上的最小值。 输入格式 输入第一行为正…

CSP2025 T4

Sol 赛时是不是多想想就会了??? 考虑 \(f_{i,j,k}\) 表示前 \(i\) 个位置,干掉了 \(j\) 个人,然后有 \(k\) 个位置已经被钦定了。 如果 \(s_i=1\),令 \(c_i\) 表示忍耐度 \(\le i\) 的人数,那么当前可以选的人数…

Day5 Scrum冲刺博客

Day5 Scrum冲刺博客 1. 团队会议 todo补充会议照片 1)昨天已完成的工作前端初步完成了四个通知栏目页的搭建后端完成了数据库建立的完整流程 完成了时间信息的提取函数 规定了部分接口格式测试检查新加入各代码文件格…

台达变频器与西门子1200 PLC互联借Modbus RTU转Profinet推动工业物联网

一、案例项目背景 在工业自动化与工业物联网深度融合的趋势下,新能源电池行业作为战略性新兴产业,正朝着高效化、智能化方向快速发展。某头部新能源电池生产企业新建一条方形动力电池模组装配线,核心控制单元采用西…

2025-11-28

CF Problem - 1766C - Codeforces(1300)(dp)(模拟) 一笔画,要经过所有黑色,并且有且仅有一次 不能经过白色 #include <bits/stdc++.h> using namespace std; #define LL long long const LL mod = 9982443…

Convolutional Neutral Network(CNN网络)

CNN(卷积神经网络) 笔记出处:李宏毅讲CNN 根据下面几个问题理清楚CNN的结构原理 1. CNN的哪些特点导致适合做类似图像分类这种图像任务?图像分类这类型的任务包括: <1> 不需要图片中所有的信息,可能只需要…

二维偏序(离线二维数点)

二维偏序(离线二维数点) 问题 在 \([l,r]\) 的区间内,有多少个数 \(\le x\)。共 \(m\) 次询问。 暴力:\(O(nm)\) 的 check。效率低下。 离线二维数点 可以将询问离线下来。 首先运用下差分的思想,将 \(ans[l,r]\)…

Product Hunt 每日热榜 | 2025-10-30 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年Q4球墨铸铁管厂家TOP5排行榜:场景适配+成本优化,采购选型指南

一、行业现状与榜单评估体系 据 2025 年行业权威数据统计,国内球墨铸铁管年需求量已突破 280 万吨,市场规模超 300 亿元,其中市政供水、水利工程及工业排污三大核心领域需求占比高达 78%,华东、华南、西南三大区域…

2025年Q4中国GEO优化公司权威排行榜:TOP5服务商解锁Deepseek高转化,AI搜索营销新标杆

据全球知名研究机构 Gartner 预测,到 2026 年传统搜索引擎访问量将锐减 25%,近四分之一的搜索流量将向 Deepseek、豆包等 AI 聊天机器人分流。生成式 AI 技术重塑营销生态的当下,AI 搜索与 GEO 优化已从单纯的流量工…

WPF的MVVM模式核心架构与达成细节

WPF的MVVM模式核心架构与达成细节2025-11-28 22:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

2025年12月GPU平台哪家好?权威榜单TOP5 低延迟+动态扩容,企业/开发者核心推荐

据《2025中国AI算力租赁行业研究报告》核心数据显示,国内GPU租赁市场规模同比增长68%突破506亿元,当前市场活跃GPU平台超300家,但29%存在“高峰时段4090排队超48小时”的资源缺口,23%平台隐性收费(带宽、存储附加…

敏捷冲刺随笔-2

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience | | 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13483 | | 这…