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

【字符串】AC自动机+dp

关于cnt

只有这一种

标记危险 cnt[p]=1 cnt[p]|=cnt[ne[p]]

记录个数cnt[p]++; cnt[p]+=cnt[ne[p]]

P3041 [USACO12JAN] Video Game G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<iostream>
using namespace std;
#include<cstring>
const int M=1010;
const int NODE=15*20+10;
int f[M][NODE];int ne[NODE];int cnt[NODE];
int tr[NODE][3];int idx=0;
int get(char c){
if(c=='A')return 0;
if(c=='B')return 1;
if(c=='C')return 2;
}


void insertt(string str){
int p=0;
for(int i=0;str[i];i++){
    int u=get(str[i]);
    if(!tr[p][u])tr[p][u]=++idx;
    p=tr[p][u];
}
cnt[p]++;

}

void bui(){
    int q[NODE];
int hh=0;int tt=-1;
for(int i=0;i<3;i++)if(tr[0][i])q[++tt]=tr[0][i];

while(hh<=tt){
    int t=q[hh++];
    for(int i=0;i<3;i++){
        int p=tr[t][i];
        if(!p)tr[t][i]=tr[ne[t]][i];
        else {
            ne[p]=tr[ne[t]][i];
            cnt[p]+=cnt[ne[p]];
            q[++tt]=p;
        }
    }

}

}

int main(){
    int n,m;
cin>>n>>m;
while(n--){
    string str;cin>>str;
    insertt(str);
}
bui();

memset(f,-0x3f,sizeof(f));
f[0][0]=0;
for(int i=0;i<m;i++){
    for(int j=0;j<=idx;j++){

    for(int u=0;u<3;u++){
        int p=tr[j][u];
        f[i+1][p]=max(f[i+1][p],f[i][j]+cnt[p]);
    }
    }
}

int ans=0;
for(int j=0;j<=idx;j++){
ans=max(ans,f[m][j]);
}
cout<<ans;


}

相关文章:

  • Android 11 FileProvider的使用和限制
  • vue3-print打印eletable某一行的数据
  • 油烟净化器选购指南:高效净化与优质服务并存的选择
  • AI论文精读笔记-Generative Adversarial Nets(GAN)
  • 远程访问电脑共享文件
  • ansible_find模块
  • 使用vscode上传git远程仓库流程(Gitee)
  • Vue3 响应式工具函数isRef()、unref()、isReactive()、isReadonly()、isProxy()
  • Springcould -第一个Eureka应用 --- day02
  • SpringBootAdmin源码修改编译002_踩坑记录一堆坑_记录过程_没有成功---VUE工作笔记0027
  • uniapp+uview-plus实现微信小程序自定义tabbar
  • 待机模式中WKUP上升沿模拟开机与关机
  • css总结(记录一下...)
  • 从底层原理上理解ClickHouse 中的稀疏索引
  • freeRTOS 任务的创建、挂起、恢复
  • Java代码审计篇 | ofcms系统审计思路讲解 - 篇4 | XXE漏洞审计
  • 在 Ubuntu 20.04 上安装 Python 3.12:详细教程
  • C++学习笔记之引用(基础)
  • ardunio超声波测距实验
  • Docker和anaconda的区别?
  • 跨文化戏剧的拓荒者与传承者——洪深与复旦剧社的百年回响
  • 落实中美经贸高层会谈重要共识,中方调整对美加征关税措施
  • 耗资10亿潮汕豪宅“英之园”将强拆?区政府:非法占用集体土地
  • “饿了么”枣庄一站点两名连襟骑手先后猝死,软件显示生前3天每日工作超11小时
  • 撤制镇如何突破困境?欢迎订阅《澎湃城市报告》第23期
  • 价格周报|供需回归僵局,本周生猪均价与上周基本持平