尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

文本生成器(AC自动机上DP)

文本生成器(AC自动机上DP)
📅 发布时间:2026/6/19 15:31:24
#include<bits/stdc++.h>
using namespace std;
const int L = 105;
const int mod = 1e4 + 7;
int n, m, cnt, ans = 1, tr[L * 60][30], fail[L * 60], dp[L][L * 60], flag[L * 60];
char s[L];
vector<int> mp[L * 60];
void build(char *s){int p = 0;for(int i = 0, len = strlen(s); i < len; i++){if(!tr[p][s[i] - 'A']) tr[p][s[i] - 'A'] = ++cnt;p = tr[p][s[i] - 'A'];}flag[p] |= 1;
}
void ac(){queue<int> q;for(int i = 0; i < 26; i++){if(!tr[0][i]) continue;fail[tr[0][i]] = 0;q.push(tr[0][i]);}while(!q.empty()){int u = q.front(); q.pop();for(int i = 0; i < 26; i++){if(tr[u][i]){fail[tr[u][i]] = tr[fail[u]][i];flag[tr[u][i]] |= flag[tr[fail[u]][i]];q.push(tr[u][i]);}else tr[u][i] = tr[fail[u]][i];}}
}
int main(){cin >> n >> m;for(int i = 1; i <= n; i++){cin >> s;build(s);}ac();dp[0][0] = 1;for(int i = 1; i <= m; i++){for(int j = 0; j < 26; j++){for(int k = 0; k <= cnt; k++){if(!flag[tr[k][j]]) dp[i][tr[k][j]] = (dp[i][tr[k][j]] + dp[i - 1][k]) % mod;}}}int sum = 0;for(int i = 0; i <= cnt; i++) sum = (sum + dp[m][i]) % mod;for(int i = 1; i <= m; i++) ans = (ans * 26) % mod;cout << (ans - sum + mod) % mod;return 0;
} 

相关新闻

  • ICLR2026 !SAM3重磅来袭:能“听懂人话”的分割模型,性能狂飙2倍
  • [题解]P11294 [NOISG 2022 Qualification] Tree Cutting
  • uniapp开发H5避坑指南

最新新闻

  • 2026-06-20 闲话
  • 3个实用技巧彻底优化《鸣潮》体验:从帧率解锁到抽卡分析的完整指南
  • 2026济宁本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 5个步骤掌握Source Han Serif CN:免费开源中文字体完全指南
  • ARM中断与VIC控制器实战:从原理到配置与避坑指南
  • LPC210x ARM7 ADC与定时器实战:从寄存器配置到驱动代码

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号