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

P3796 AC 自动机(简单版 II)

P3796 AC 自动机(简单版 II)

大意

询问那些模式串在文本串中出现的次数最多。

思路

依旧构建 AC 自动机,出现的次数通过不断跳 fail 统计即可。

代码

#include<iostream>
#include<queue>
#include<cstring>
#include<string>
using namespace std;const int MAXN = 1e6 + 5;
int ch[MAXN][26], idx = 0;
int fail[MAXN], n;
char c[MAXN];
string strs[155];
int id[MAXN], num[155];void reset() {idx = 0;memset(ch, 0, sizeof(ch));memset(fail, 0, sizeof(fail));memset(id, 0, sizeof(id));memset(num, 0, sizeof(num));
}void Insert(char *s, int pid){int now = 0;for(int i = 0;s[i];i ++){int x = s[i] - 'a';if(!ch[now][x]){ch[now][x] = ++ idx;}now = ch[now][x];}id[now] = pid;
}void build(){queue<int> q;for(int i = 0;i < 26;i ++){if(ch[0][i]){q.push(ch[0][i]);}}while(!q.empty()){int u = q.front(); q.pop();for(int i = 0;i < 26;i ++){if(ch[u][i]){fail[ch[u][i]] = ch[fail[u]][i];q.push(ch[u][i]);}else ch[u][i] = ch[fail[u]][i];}}
}void query(char *s){int now = 0;for(int k = 0;s[k];k ++){now = ch[now][s[k] - 'a'];for(int v = now;v;v = fail[v]){if(id[v]){num[id[v]] ++;}}}
}int main(){ios::sync_with_stdio(false);cin.tie(0);while(cin >> n, n){reset();for(int i = 1;i <= n;i ++){cin >> strs[i];Insert((char*)strs[i].c_str(), i);}build();cin >> c;query(c);int res = 0;for(int i = 1;i <= n;i ++) res = max(res, num[i]);cout << res << '\n';for(int i = 1;i <= n;i ++){if(num[i] == res) cout << strs[i] << '\n';}}return 0;
}
http://www.jsqmd.com/news/396738/

相关文章:

  • 军储 × 危化联动三维空间主动防控装备体系——基于视频孪生感知层与镜像孪生控制层的战术级空间计算与压制装备平台
  • 视频孪生之上:镜像孪生驱动的水利空间智能压制与风险前置控制体系-----基于矩阵视频融合 × Pixel-to-3D 三角测量反演 × 三维轨迹建模 × 趋势预测 × 前向布控调度构建的水利枢纽厘米
  • Alpine Linux vs CentOS 7 对比
  • 晶体塑性ABAQUS脚本 基于细观力学,可提取二维三维应力 采用脚本提取代表体积单元模型的所有...
  • 2026最新武商一卡通回收必知事项,快速上手更安心! - 团团收购物卡回收
  • k8s使用Readiness Probe就绪探针:确保java应用在数据库恢复后才接收流量
  • P3808 AC 自动机(简单版)
  • Alpine Linux容器中安装工具示例
  • springboot高校大学生创新创业项目管理系统-Pycharm django
  • qwen3.5-plus识别原神按钮groundingbox
  • Agent实习模拟面试之具身智能:如何赋予大模型“双手”与“眼睛”——从工具调用到多模态感知的深度解析
  • 基于Python基于flask的出国留学信息国外大学学校推荐系统的设计与实现-Pycharm django
  • 案例分享——MCP改进提案在生产中落地的例子
  • 基于Python基于flask的大学生招聘求职系统-Pycharm django
  • 生成引擎优化(GEO)在提升内容创作效率与用户体验方面的创新策略分析
  • Agent实习模拟面试之企业级大模型融合架构:从单点调用到智能中枢的系统设计深度拷问
  • 强烈安利!圈粉无数的AI论文平台 —— 千笔ai写作
  • 导师严选! 降AI率软件 千笔·降AIGC助手 VS speedai,专科生专属高效选择
  • Agent实习模拟面试之Agentic 代理模式:从单智能体到多智能体协同的系统设计深度拷问
  • 横评后发现 8个AI论文平台:专科生毕业论文写作全攻略
  • 用实力说话!降AI率软件 千笔·降AI率助手 VS speedai 专科生专属首选
  • 一遍搞定全流程!断层领先的AI论文网站 —— 千笔写作工具
  • 「Chrome 扩展开发」系列入门教程
  • 写作小白救星!9个AI论文写作软件深度测评,继续教育毕业论文必备工具推荐
  • 滑雪问题
  • USB线选购指南2026:避开3大陷阱,选到耐用快充的好线 - 速递信息
  • 洛谷 P1801:黑匣子 ← 二叉堆
  • 运动木地板怎么选?洛可风情5S全价值方法论破解选型困局 - 速递信息
  • Python Streamlit介绍(开源Python Web应用框架,快速将Python脚本转换成交互式Web应用,适合数据科学和机器学习项目快速展示)
  • 【强化学习的数学原理-赵世钰】随记