HDU-3065(病毒侵袭持续中)

   题意不用多说,此题AC自动机模板题,考虑读者已经掌握了AC自动机,可以切这个题来巩固一下,
最坑的地方是多case题目居然没有说~!!!一直wa的同学们看看自己是不是用了多case。
题目原址:http://acm.hdu.edu.cn/showproblem.php?pid=3065
View Code
  1 //====================================================================
  2 //Name       :
  3 //Author     :hxf
  4 //copyright  :http://www.cnblogs.com/Free-rein/
  5 //Description:
  6 //Data       :2012.8.8
  7 //========================================================================
  8 #include<iostream>
  9 #include<algorithm>
 10 #include<stdio.h>
 11 #include<math.h>
 12 #include<string.h>
 13 #include<vector>
 14 #include<stack>
 15 #include<queue>
 16 #define MAX 100005
 17 #define inf 1499999999
 18 using namespace std;
 19 const int len=28;//最多只有26个英文字母
 20 struct Tril{
 21     Tril *fail;
 22     Tril *son[len];
 23     int count;
 24     Tril(){
 25         fail=NULL;
 26         count=0;
 27         memset(son,NULL,sizeof(son));
 28     }
 29 };
 30 char str[2000050];
 31 char word[1005][55];
 32 int ans[1005];
 33 void creat(char *word,Tril *root,int num)///////////插入tril树
 34 {
 35     Tril *p=root;
 36     int lenth=strlen(word);
 37     for(int i=0;i<lenth;i++)
 38     {
 39         int index=word[i]-'A';
 40         if(p->son[index]==NULL)
 41             p->son[index]=new Tril();
 42         p=p->son[index];
 43     }
 44     p->count=num;
 45 }
 46 void creat_ac_automation(Tril *root)/////寻找失败节点
 47 {
 48     queue<Tril *> q;
 49     root->fail = NULL;
 50     q.push(root);
 51     while (!q.empty()) {
 52         Tril * p_cur = q.front();
 53         q.pop();
 54         for (int i = 0; i < 26; ++i) {
 55             if (p_cur->son[i] != NULL) {
 56                 if (p_cur == root) {
 57                     p_cur->son[i]->fail = root;
 58                 } else {
 59                     Tril * temp = p_cur->fail;
 60                     while (temp != NULL) {
 61                         if (temp->son[i] != NULL) {
 62                             p_cur->son[i]->fail = temp->son[i];
 63                             break;
 64                         }
 65                         temp = temp->fail;
 66                     }
 67                     if (temp == NULL) {
 68                         p_cur->son[i]->fail = root;
 69                     }
 70                 }
 71                 q.push(p_cur->son[i]);
 72             }
 73         }
 74     }
 75 }
 76 void query(Tril *root)//从str字符串中查询word单词出现的个数
 77 {
 78     int lenth=strlen(str);
 79     Tril *p=root;
 80     for(int i=0;i<lenth;i++)
 81     {
 82         if(str[i]<'A'||str[i]>'Z')
 83         {
 84             p=root;
 85             continue;
 86         }
 87         int index=str[i]-'A';
 88         while(p->son[index]==NULL&&p!=root)
 89         {
 90             p=p->fail;
 91         }
 92         p=p->son[index];
 93         if(p==NULL)
 94             p=root;
 95         Tril *k=p;
 96         while(k!=root)
 97         {
 98             if(k->count>0)
 99             {
100                 int s=k->count;
101                 ans[s]++;
102             }
103             k=k->fail;
104         }
105     }
106 }
107 int main()
108 {
109     int n;
110     while(~scanf("%d", &n))
111     {
112         memset(ans,0,sizeof(ans));
113         Tril *root=new Tril();
114         scanf("%d",&n);
115         for(int i=1;i<=n;i++)
116         {
117             scanf("%s",word[i]);
118             getchar();
119             creat(word[i],root,i);
120         }
121         creat_ac_automation(root);
122         scanf("%s",str);
123         getchar();
124         query(root);
125         for(int i=1;i<=n;i++)
126         {
127             if(ans[i]>0)
128             {
129                 printf("%s: %d\n",word[i],ans[i]);
130             }
131         }
132     }
133     return 0;
134 }
 
  

 

 

转载于:https://www.cnblogs.com/Free-rein/archive/2012/08/09/2630136.html

手把手教你学pcie--内存管理和保护机制(一):MPU与其他内存管理和保护机制详解 MPU(Memory Protection Unit)是一种专门用于 ​。,这些机制通常协同工作,形成多层防御体系,兼顾安全性、性能和灵活性。 阅读详情

相关推荐

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5640

HDU3065

/**/ #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; #include &lt;cctype&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;map&gt; #include &lt;set&amp

oneplus123的博客 356

基于STM32 HAL库的L298N四驱电机PWM调速与方向控制实战

本文详细介绍了基于STM32 HAL库驱动L298N电机控制板实现四驱小车PWM调速与方向控制的实战方法。涵盖硬件连接、GPIO与定时器配置、PWM生成、方向控制逻辑及电源管理等核心内容,并提供代码优化与常见问题解决方案,帮助开发者快速实现高效稳定的电机控制。

jump7的博客 222

HDU-3065 病毒侵袭持续中(AC自动机)

小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,小t首先要做的是知道这个病毒网站特征:包含多少不同的病毒,每种病毒出现了多少次。大家...

kuronekonano的博客 1504

深入RK3588嵌入式Linux开发:uboot源码定制化移植实战

本文详细介绍了RK3588嵌入式Linux开发中,如何绕过庞大的官方SDK,从官方仓库获取纯净U-Boot源码并进行定制化移植的完整实战流程。内容包括编译环境搭建、交叉工具链配置、源码结构解析、设备树(Device Tree)修改、环境变量定制、编译脚本编写以及常见问题调试技巧,旨在帮助开发者深入理解系统引导过程,掌握为定制硬件适配U-Boot的核心技能。

weixin_29169505的博客 423

STM32项目实战_基于STM32F103的智能药箱设计与实现(硬件详解+软件逻辑+调试要点)

本文详细介绍了基于STM32F103的智能药箱设计与实现,涵盖硬件设计、软件逻辑和调试要点。项目核心功能包括精准提醒、药品管理和远程监控,采用STM32单片机作为主控,结合光电开关、蓝牙模块等实现智能化管理。文章还分享了电路图设计、程序优化及常见问题解决方案,为嵌入式开发爱好者提供实用参考。

weixin_28717683的博客 303

hdu-3065(AC自动机)

Hdu-3065 思路: 考虑所有的ASCII字符的情况,用26范围内可能出错。 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> using namespace std; const in...

积少成多,水滴石穿 402

iPhone用户必看:不装App也能搞定GitHub 2FA验证的3种方法(附恢复码管理技巧)

本文为iPhone用户提供了无需安装第三方App即可完成GitHub双重身份验证(2FA)的三种原生方案:利用相机扫码与iCloud钥匙串自动填充、使用iCloud钥匙串内置的TOTP验证码生成器,以及借助Safari浏览器扩展。文章详细解析了每种方法的操作步骤、适用场景,并重点强调了恢复码的安全管理与多层备份策略,帮助开发者在提升账户安全的同时,享受苹果生态的无缝便捷体验。

weixin_29324401的博客 655

【AC自动机_每个模式串在文本串中出现的次数】HDU 3065 病毒侵袭持续中

HDU 3065 病毒侵袭持续中 题意:给出n个全是英文大写字母的模式串,保证每个模式串不完全相同。然后再给出一个文本串,字符集由包含ASCII可见字符组成。问每个模式串在文本串中出现的次数。 一: 思路:其实就是一个AC自动机的板子???只是分别统计了每个模式串出现的次数而已???真的是这样!!!!!我真的迷…… #include <iostream> #include...

L_X_ 364

【100分】【等和子数组最小和】

逆序排序,这样能够使得在分组时优先选取较大的元素,以便将元素分配到较小的子集中,从而使得每个子集的和相对均衡。给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值。分成若干个组,使得每组的和相等,并求出满足条件的所有分组中,组内元素和的最小值。在递归的过程中,我们需要注意一个优化点,即避免将相同和的桶重复计算。4 个子集(5),(1,4),(2,3),(2,3)2 个子集(5, 1, 4),(2,3, 2,3)个子集,则返回子集和的最小值,如果不能,则将。

weixin_54707168的博客 1168

R语言 地理加权随机森林(GWRFC )

随机森林可以产生高准确度的分类器,被广泛用于解决模式识别问题。然而,随机森林赋予每个决策树相同的权重,这在一定程度上降低了整个分类器的性能。该算法引入二次训练过程,提高分类正确率高目前,鲜有中文文章介绍GWRFC的技术文档,作者想使用该方法时会遇到重重困难,因此有必要利用R来建模,通过流程演示,供读者参阅。............

qingchen98的博客 6632

HDU 3065 病毒侵袭持续中

HDU 3065 病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Problem Description - 题目描述 小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大...

122

02-Redis 核心特性与数据结构详解:揭秘高性能的技术内核

本文深度拆解 Redis 高性能的技术内核:揭秘其凭“内存存储 + C 语言开发” 实现微秒级延迟、10 万 + QPS 的性能优势;详解 5 种基础数据类型(String/Hash 等)与 4 种扩展数据类型(Stream/Geospatial 等)的特性及场景;还介绍多语言支持、RDB/AOF 持久化、主从复制 / 哨兵 / 集群等高可用方案,助读者掌握 Redis 技术核心与实践逻辑。

蜗牛老师,专注编程领域 996

AC自动机入门 - HDU3065 病毒侵袭持续中

AC自动机的模板题。 HDU3065 病毒侵袭持续中 题意:给定n个字符串和一段文本,统计每个字符串在文本中分别出现的次数。 注意点:这里输入单词的时候给每个单词分布一个id,然后在统计次数的时候根据id增加数组的次数就可以了。(这里用kuangbin大神的模板) code: #include #include #include #include using namespa

Exchan 384

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu3065 病毒侵袭持续中

病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2876    Accepted Submission(s): 1056 Problem Description 小t非常感谢大家帮忙解决了他的上一个

喵呜的Blog 976

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

HDU3065 病毒侵袭持续中

病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10442Accepted Submission(s): 3679 Problem Description 小t非常感谢大...

dezhen7015的博客 77

HDU3065 病毒侵袭持续中

小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,小t首先要做的是知道这个病毒网站特征:包含多少不同的病毒,每种病毒出现了多少次。大家...

weixin_44488944的博客 183

HDU 3065 病毒侵袭持续中(AC自动机)

<br />/* FileName: 3065.cpp Author: ACb0y Date: 2010年12月30日12:45:12 Type: AC自动机 ProblemID: HDU 3065 病毒侵袭持续中 Result: 3372006 2010-12-30 12:41:42 Accepted 3065 281MS 16760K 2218 B G++ ACb0y */ #include <iostream> #include <queue> using name

个人独立博客http://www.acb0y.cn/ 1123

[题解]HDU2896病毒侵袭、HDU3065病毒侵袭持续中

HDU2896病毒侵袭当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大地迎来最黑暗的时刻。。。。在这样的时刻,人们却异常兴奋――我们能在有生之年看到500年一遇的世界奇观,那是多么幸福的事儿啊~~ 但网路上总有那么些网站,开始借着民众的好奇心,打着介绍日食的旗号,大肆传播病毒。小t不幸成为受害者之一。小t如此生气,他决定要把世界上所有带病毒的网站都找出来。当然,谁都知道这是不可能的。小t却执

Saramanda的博客 913

HDU - 3065 病毒侵袭持续中

小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,小t首先要做的是知道这个病毒网站特征:包含多少不同的病毒,每种病毒出现了多少次。大家...

yhb的博客 217

HDU3065 病毒侵袭持续中【AC自动机】

HDU3065 病毒侵袭持续中 Problem Description 小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,...

Dream_maker的博客 273

病毒侵袭持续中 hdu3065

题目链接 这道题与hdu2222类似 #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;math.h&gt; #include&lt;new&gt; #include&lt;queue&gt; #include&lt;string.h&gt; #include&lt;

qq_41006240的博客 137

HDU 3065:病毒侵袭持续中

AC自动机入门题

温姑娘的博客 325

病毒侵袭持续中(HDU-3065)

Problem Description 小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争。知己知彼,百战不殆,小t首先要做的是知道这个病毒网站特征:包...

Alex_McAvoy的博客 717
下一篇: HDU-2896(病毒侵袭)
badao7116
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值