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

Solution - P3041 [USACO12JAN] Video Game G

应该是一个很基础的 ACAM 上 dp。

首先建出 ACAM。然后对于 ACAM 上的每一个节点,为其后缀的组合技数量等于在其 fail 树上直到根的路径上有 tag 的节点的数量。于是直接在 ACAM 上 dp 即可。

#include <bits/stdc++.h>
#define llong long long
#define N 305
#define K 1005
using namespace std;char a[N];
int son[N][4], fail[N], tag[N], tsiz = 1;
int dp[K][N];
int n, k, l, ans;int que[N], he, ta;int main(){scanf("%d %d", &n, &k);for(int i = 1; i <= n; ++i){scanf("%s", a+1), l = strlen(a+1);int x = 1;for(int j = 1; j <= l; ++j){if(!son[x][a[j]^64]) son[x][a[j]^64] = ++tsiz;x = son[x][a[j]^64];}++tag[x];}for(int i = 1; i <= 3; ++i){if(son[1][i]) fail[son[1][i]] = 1, que[++ta] = son[1][i];else son[1][i] = 1;}while(he <= ta){int x = que[he++];tag[x] += tag[fail[x]];for(int i = 1; i <= 3; ++i){if(son[x][i]) fail[son[x][i]] = son[fail[x]][i], que[++ta] = son[x][i];else son[x][i] = son[fail[x]][i];}}for(int i = 0; i <= k; ++i)for(int j = 1; j <= tsiz; ++j)dp[i][j] = -1e9-7;dp[0][1] = 0;for(int i = 0; i < k; ++i)for(int j = 1; j <= tsiz; ++j)for(int k = 1; k <= 3; ++k)dp[i+1][son[j][k]] = max(dp[i+1][son[j][k]], dp[i][j]+tag[son[j][k]]);for(int i = 1; i <= tsiz; ++i)ans = max(ans, dp[k][i]);printf("%d", ans);return 0;
}
http://www.jsqmd.com/news/351278/

相关文章:

  • Visio文件很小,但把图从Visio粘贴到Word后非常大
  • Sentieon | RNA-seq 变异检测全流程详解
  • 构建2万+文档RAG系统:10个项目实战经验,值得收藏
  • Python毕设选题推荐:基于Python的去中心化知识图谱系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • MyEMS开源能源管理系统赋能涤纶纤维制造业绿色转型
  • 布雷顿森林体系是如何崩溃的?
  • 【课程设计/毕业设计】基于Python的去中心化知识图谱系统的设计与实现基于django/Flask的 去中心化知识图谱系统【附源码、数据库、万字文档】
  • MyEMS开源能源管理系统——零碳工厂建设的数字化赋能工具
  • 中国人为什么春节要回家过年,过完年又回大城市打拼
  • 计算机Python毕设实战-基于Python的去中心化知识图谱系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 从AI到LLM,一篇搞懂大模型技术栈(建议收藏)
  • 免费给视频加字幕的网站
  • 【计算机毕业设计案例】基于python+协同过滤算法的金融理财产品推荐系统基于协同过滤算法的理财产品推荐系统(程序+文档+讲解+定制)
  • LLM推理时计算技术详解:四种提升大模型推理能力的方法
  • Linux内核kfifo - Hello
  • 反弹shell
  • Python计算机毕设之基于Python的去中心化知识图谱系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 数据即服务:大数据领域的下一个风口
  • 在 VS Code 中集成和使用通义灵码(Lingma)
  • 红米手机技巧:如何在红米手机中恢复联系人 - 教程
  • 分析AI应用架构师的社会网络AI分析平台的性能指标
  • Gensors压力扫描阀:捕捉进气道总压畸变的关键
  • 炸了!AI双巨头同天亮剑[特殊字符] Claude Opus 4.6 vs GPT-5.3-Codex 深度拆解,开发者必看 谁能想到!2026年2月5日,AI圈直接被两大巨头掀翻天花板
  • PBRT中的RayDifferentials
  • 年底聚会避坑!高情商vs低情商表达,差的不只是说话技巧
  • 为什么建议把 map 换成 for loop?—— 聊聊 Side Effects 与语义化编程
  • 基于大数据的新疆特产商品推荐系统的 爬虫 数据分析可视化系统9062th44
  • 二月杂谈
  • 从0到1理解Nginx定时器:源码级超时管理完全指南
  • BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?