hdu 2222 AC自动机 。。

AC自动机模板+例题(HDU2896+HDU3065+HDU2222) 病毒侵袭中(HDU2896) #include<map> #include<cmath> #include<queue> #include<vector> #include<cstdio> #include<string> #include<cstdlib> #include<cstring> ... 阅读详情


#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
const int MAXK = 26;
const int MAXN = 500010 ;
const int  A = 'a';

struct node {
     node * fail ;
     node * next[MAXK];
     int count ;
     node(){
        fail = NULL;
    count = 0;
        for(int i=0 ;i<26;i++){
      next[i] = NULL;
    }
     }
};
char keyword[51];
char str[1000010];
void insert(char *str, node *root){
  node *p =root ;
  int i= 0 ,index ;
  while(str[i]){
     index = str[i] - 'a' ;
     if(p->next[index]==NULL){
         p->next[index] = new node;
     }
     p = p->next[index];
     i++;
  }
  p->count++;
}
queue<node *>q;
void build_ac_automation(node *root){
     while(!q.empty()) q.pop();
     q.push(root);
     while(!q.empty()){
           node *top = q.front();
       q.pop();
       node *p ;
           for(int i=0 ;i<26;i++){
           if(top->next[i]){
             if(top == root) {
                        top->next[i]->fail=root;
                q.push(top->next[i]);
            continue;
             }
             p = top->fail;
             while(p){
               if(p->next[i]){
                  top->next[i]->fail = p->next[i];
              break;
               }else{
                 p = p->fail; 
               }
             }
             if(p ==NULL){
                top ->next[i]->fail = root;
             }
             q.push(top->next[i]);
            }
              
     }
     }
     
}
int query(node *root){
   int cnt = 0 ;
   int len = strlen(str);
    node *p = root;
    for(int i=0;i<len ;i++){
       int idx = str[i]  - 'a';
       while(!p->next[idx]&&p!=root){
         p = p->fail;
       }
       p = p->next[idx];
       p = (p== NULL) ? root:p;
       node *tmp = p;
       while(tmp!=root&& tmp->count != -1){
          cnt += tmp ->count ;
      tmp -> count = -1 ;
      tmp = tmp->fail;
       }
      
    
    }
    return cnt;
}
int main(){
   int cas ;
   scanf("%d",&cas);
   while(cas -- ){
      node *root = new node ;
      int n ;
      scanf("%d",&n);
      for(int i=1;i<=n;i++){
         scanf("%s",keyword);
     insert(keyword,root);
      }
      build_ac_automation(root);
      scanf("%s",str);
      int ans = query(root);
      cout <<ans <<endl;
   
   }

return  0;
}


AC自动机的水题。。 多组数据 每一组数据 都要重新建树 ,但没有把以前的delete 。 愚钝 不会 delete 。。。

【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面) SMBus Host controller not enabled(虚拟机进入不了图形界面) 阅读详情

相关推荐

编码约定的自由度:重新思考Hamming码在实际工程中的灵活应用

本文探讨Hamming码在实际工程中的灵活应用,突破标准实现的思维定式。通过分析不同编码约定的优缺点和资源受限环境下的设计权衡,展示如何根据嵌入式系统、通信协议等具体需求定制汉明码实现,优化编解码效率并降低硬件开销。

perl8的博客 178

AC自动机的初步学习 hdu2222 AC自动机入门题

本来KMP和trie树就不太熟悉,但是就是想弄明白AC自动机是什么东东,所以就找了一些博客学习了一下,用hdu2222练了一下手。 推荐几篇很好的博客: http://www.cppblog.com/menjitianya/archive/2014/07/10/207604.html 这篇博客绝对是良心之作,尤其是那些图片,可以很好地讲述AC自动机的失败指针和trie图构造。 还有几篇不错

01的世界 696

为什么类型论是函数式编程的理想基础?

函数式编程(如Haskell、Scala、OCaml)以“函数为核心”“无副作用”“不可变数据”等特性著称,但它的“安全高效”并非凭空而来——背后的关键支撑是类型论。本文将聚焦“类型论如何支撑函数式编程”,从基础概念到具体案例,解释两者的本质联系。本文将按“故事引入→核心概念解释→关系拆解→原理+代码案例→实际应用→总结”的逻辑展开,用“乐高积木”“菜谱”等比喻贯穿全文,确保抽象理论可视化。类型论:程序的“接口规则手册”,定义类型和函数的约束;函数式编程。

AI天才研究院 694

HDU2222-Keywords Search AC自动机

HDU2222-Keywords Search AC自动机算法

P_rogrammer的专栏 742

国密套件ECC-SM2-SM4-CBC-SM3和ECDHE-SM2-WITH-SM4-SM3

双方交换各自的公钥,最后A计算点(x1,y1) = d1Q2,B计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换和结合律,所以 d1Q2 = d1d2G = d2d1G = d2Q1 ,因此双方的 x 坐标是一样的,所以它是共享密钥,也就是会话密钥。4、客户端和服务端分别使用工作密钥,计算主密钥,客户端随机数,服务端随机数,字符串常量"key expansion",经PRF计算生成工作密钥。工作密钥包括加密密钥和校验密钥,具体密钥长度由选择的密码算法决定。客户端支持的压缩算法列表。

Java学习笔记 3784

一文吃透 SAP HANA Service Broker:原理、架构与落地实践

摘要:SAP HANA Service Broker 作为云原生开发的关键组件,通过标准化流程管理 HDI 容器与服务实例的生命周期,实现数据库资源的自动化配置与安全隔离。它采用服务目录、服务计划和绑定机制,将连接凭据注入应用环境变量,避免硬编码风险。在实际应用中,需根据模块生命周期决定共享或隔离容器,并通过跨容器访问模式实现安全数据共享。典型案例展示了电商平台的多模块协同与SaaS租户隔离场景,验证了其在提升运维效率与安全合规方面的价值。最佳实践强调以生命周期划边界、最小权限原则和HTTPS安全传输,为企

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

hdu 2222 AC自动机

http://acm.hdu.edu.cn/showproblem.php?pid=2222   hdu 2222 AC自动机的模板题,题意大楷是:给出一些单词,和一段文本,输出文本中出现的单词个数,重复的不计。  AC自动的原理和KMP的原理差不多,AC自动机的Fail指针和KMP的next数组的原理是一样的。  具体的AC自动机的阐述网上很多,在这里我就不画蛇添足了。  来看看我写的一

853

【个人学习总结】CRC校验原理及实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ..................

星Yeah 的博客 7968

HDU 2222 AC 自动机

题意 传送门 HDU 2222 题解 多模式匹配,裸的 ACACAC 自动机。 #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <queue> using namespace std; #define maxn 10000 #define maxl 1000005 struct node { int cnt, a[26];

neweryyy的博客 216

【深度学习新浪潮】近三年垂域大模型研究与产品进展全景洞察(2022-2025)

近三年来,垂域大模型完成了从技术探索到产业落地的关键跨越,在多个行业实现效率提升与价值创造。面对数据治理、技术适配、生态建设等挑战,未来需要通过技术创新、标准制定、人才培养等多维度发力,推动垂域大模型向更高效、更可靠、更普惠的方向发展。随着"人工智能+"行动的深入推进,垂域大模型将成为数字经济与实体经济深度融合的核心驱动力,为产业智能化升级注入持续动能。

专注:太空算力、AI infra、异构调度、大模型成本工程 786

学Simulink——控制执行场景实例:基于Simulink的智能车辆电子稳定控制(ESC)仿真

本文完成了基于 Simulink 的智能车辆电子稳定控制(ESC),实现了:✅ 构建含轮胎非线性的车辆动力学模型✅ 设计滑模横摆稳定性控制器✅ 实现四轮制动力分配逻辑✅ 验证在双移线低附着场景下的卓越稳定性✅ 为主动安全控制系统开发提供完整范式。

xiaoheshang_123的博客 528

AC自动机(HDU2222)

HDU2222 #include<iostream> #include<algorithm> #include<cstring> #include<string> #include<cstdio> #include<queue> using namespace std; struct Trie { Trie *n...

September_的博客 243

《QGIS快速入门与应用基础》010:下载过程中常见问题(如网速慢、文件损坏)

针对QGIS下载过程中的常见问题提供了系统解决方案。主要解决下载速度慢(≤100KB/s)和文件损坏两大核心问题:通过切换国内镜像源(如清华大学、阿里云)、使用专业下载工具提升速度;采用MD5/SHA256校验确保文件完整性,并排查存储介质和杀毒软件干扰。文章还包含macOS权限问题、Linux依赖缺失等高频问题的速解方案,并附详细的排查流程图和预防技巧,帮助用户顺利完成QGIS下载。后续将详细介绍安装流程,适合零基础用户参考。

LuckyHanMo的博客 483

【AC自动机】Hdu2222:Keywords Search

Hdu 2222:Keywords SearchDescriptionIn the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retrieval system. Ev

puck_just_me的blog 705

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C++——AC自动机例题——Keywords Search(HDU2222)

Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 58664    Accepted Submission(s): 19253 Problem Description In the

McDonnell_Douglas的博客 1112

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

HDU2222 Keywords Search 【AC自动机】

HDU2222 Keywords Search Problem Description In the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retri...

Dream_maker的博客 355

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AC自动机模板(hdu2222)

具体学习参考https://blog.youkuaiyun.com/creatorx/article/details/71100840 模板来自kuangbin大神,HDU2222模板题 //====================== // HDU 2222 // 求目标串中出现了几个模式串 //==================== #include&lt...

bahuan1974的博客 131

【字符串】【hdu2222】AC自动机

AC自动机 一种多模匹配算法(如:有N个字符串Si以及一个字符串T,计算每个字符串Si在T中出现的次数) 原理:KMP+Trie 算法详解:ac自动机最详细的讲解,让你一次学会ac自动机 模板 const int C = 26; const int N = 1e5; stack <int> st; struct Node { int son[C], next, end; ...

想到什么写什么 239

【AC自动机_模板】HDU 2222 Keywords Search

HDU 2222 Keywords Search 题意:问文本串中出现了多少种模式串。 AC CODE【AC奥特曼板子题~】 #include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring> #include &l...

L_X_ 211

【AC自动机】hdu2222 hdu2896 hdu3065 zoj3430 poj2778 hdu2243

AC自动机用于多个模式串与多个母串的匹配。 第一步:根据模式串建立字典树int len=strlen(w), r=root; for(int i=0;i<len;++i) { if(tree[r].ch[w[i]])r=tree[r].ch[w[i]]; else r=tree[r].ch[w[i]]=++cnt; } ++tree[r].c

蒟蒻的奋斗史 625

AC自动机板子(hdu2222)&(hdu2896)

参考博客:https://blog.youkuaiyun.com/bestsort/article/details/82947639 AC代码:hdu2222 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<queue> #in...

ecjtu_17_TY的博客 264

AC自动机 模板 【HDU2222】 Keywords Search

AC自动机(Aho Corasick Automaton) 如果匹配字符串,一个模式串,一个匹配串,KMP就搞定了。 但是如果现在有多个模式串怎么办呢?每个模式串都处理一遍,再与匹配串匹配就太慢了,所以有了AC自动机,来解决这类问题。AC自动机可以看成是Trie树和KMP的结合体,具体的实现方式就是在每个节点处增添一个fail指针,作用与KMP中的失配时用的跳转数组差不多(虽然在匹配的大多数时候

Todobe 500

hdu 2222 AC自动机模板题

首先学KMP   推荐《算法导论》以及本人的KMP博文 http://blog.youkuaiyun.com/u011026968/article/details/10382659 在学Trie  这个其实不难,随意找点资料就行 然后开始学AC自动机  http://www.cppblog.com/mythit/archive/2014/03/09/80633.html#206110  这个博文的讲解很好

Pilgrim 1363

【hdu2222-Keywords Search】AC自动机基础裸题

【hdu2222-Keywords Search】AC自动机基础裸题 http://acm.hust.edu.cn/vjudge/problem/16403 题意:给定n个单词,一个字符串,问字符串中出现了多少个单词。(若单词her,he,字符串aher中出现了两个单词) 题解: 每个单词末尾节点sum=1;find的时候每个点都顺着fail...

qq_25768269的博客 140

hdu_2222_Keywords Search(AC自动机板子)

题目连接:hdu_2222_Keywords Search 存个自己写的AC自动机 #include #include #define F(i,a,b) for(int i=a;i<=b;i++) const int AC_N=10001*50,tyn=26;//数量乘串长,类型数量 struct AC_automation{ int tr[AC_N][tyn],cnt[AC_N],

bin_gege的博客 354

HDU 2222(AC自动机模板)

AC自动机这个算法网上有很多资料,这里就不多赘述了。当从一个字符串中查找另一个字符串,我们有快速的算法KMP。现在的问题是要从一个字符串中查找很多字符串,或者要从多个字符串里分别查找很多字符串。AC自动机就是解决这个问题的。HDU2222的题意就是要从一个字符串中查找很多字符串,很裸的模板题。不过测试数据相当的水,有很多人错误的程序都AC掉了。我们把一个字符串中查找很多字符串中的一个字符串成为文本...

哇哈哈的专栏 746
上一篇: AC 自动机 水题 hdu 3065
下一篇: poj 2778 AC 自动机 + 矩阵快速幂
OceanLight
博客等级 码龄14年 21粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值