[ac自动机]zoj3228 Searching the String

【Qt】QByteArray详解 对象共享同一份数据,直到修改时才进行深拷贝,以节省内存和计算资源。:可存储任意二进制数据(如图片、音频、协议数据),不依赖字符编码。与编码(如 UTF-8、Latin-1)之间的桥梁(例如。• 补零规则确保奇数字符串能正确解析,避免数据截断。:内部自动分配和释放内存,无需手动管理。将输入的字符串视为十六进制编码数据,返回实际数据长度(不包括结尾的。的输入必须是有效的十六进制字符(,但针对 Qt 框架做了优化。:处理加密后的二进制结果(如。• 如果输入字符串长度为奇数,• 若输入长度为奇数,自动在。 阅读详情
Searching the String
Time Limit: 7 Seconds      Memory Limit: 129872 KB

Little jay really hates to deal with string. But moondy likes it very much, and she's so mischievous that she often gives jay some dull problems related to string. And one day, moondy gave jay another problem, poor jay finally broke out and cried, " Who can help me? I'll bg him! "

So what is the problem this time?

First, moondy gave jay a very long string A. Then she gave him a sequence of very short substrings, and asked him to find how many times each substring appeared in string A. What's more, she would denote whether or not founded appearances of this substring are allowed to overlap.

At first, jay just read string A from begin to end to search all appearances of each given substring. But he soon felt exhausted and couldn't go on any more, so he gave up and broke out this time.

I know you're a good guy and will help with jay even without bg, won't you?

Input

Input consists of multiple cases( <= 20 ) and terminates with end of file.

For each case, the first line contains string A ( length <= 10^5 ). The second line contains an integer N ( N <= 10^5 ), which denotes the number of queries. The next N lines, each with an integer type and a string a ( length <= 6 ), type = 0 denotes substring a is allowed to overlap and type = 1 denotes not. Note that all input characters are lowercase.

There is a blank line between two consecutive cases.

Output

For each case, output the case number first ( based on 1 , see Samples ).

Then for each query, output an integer in a single line denoting the maximum times you can find the substring under certain rules.

Output an empty line after each case.

Sample Input

ab
2
0 ab
1 ab

abababac
2
0 aba
1 aba

abcdefghijklmnopqrstuvwxyz
3
0 abc
1 def
1 jmn

Sample Output

Case 1
1
1

Case 2
3
2

Case 3
1
1
0

Hint

In Case 2,you can find the first substring starting in position (indexed from 0) 0,2,4, since they're allowed to overlap. The second substring starts in position 0 and 4, since they're not allowed to overlap.

For C++ users, kindly use scanf to avoid TLE for huge inputs.

 

题目大意:给出一个字符串和若干个单词,问这些单词在字符串里面出现了多少次。单词前面为0表示这个单词可重叠出现,1为不可重叠出现。

分析:可重叠出现的单词可以直接用ac自动机就解决。至于不可重叠的单词,可以用一个数组来记录下每个这种单词上一次出现的位置,假如当前得到这个单词的位置和上一次的位置之间足够放下一个单词(即两个位置的坐标差大于等于单词长度)时才算一次,具体的可以看程序。我原先写的用数组实现的ac自动机,不过错了,然后用链表写,结果内存爆了..再用数组写了一次,ac了..这个程序都用了记录,应该很直观才对...

 

迅速完成ac自动机的论文先.....

 

 

codes:

ChromeOS安装教程 ChromeOS,是基于Linux内核研发的ChromiumOS开源系统的闭源系统,最大的特色就是内置了Chrome浏览器,早期主要以Web云端应用程序为主,后来逐渐引入了Android子系统和Linux子系统。本文主要简述摸索的家用笔记本安装ChromeOS安装方法,供各位玩机朋友参考。 阅读详情

相关推荐

Python 实现 傅里叶级数 对 函数拟合 并绘图

好记性不如烂笔头 目录傅里叶级数变换原理代码实现效果图 傅里叶级数变换原理 原理:待续… 傅里叶级数变换公式: 代码实现 本次实现的是符号函数的拟合: 注:若要实现其他函数的拟合,修改程序中 fx 的表达式即可 """ 傅里叶级数""" import sympy as sym import numpy as np import matplotlib.pyplot as plt N = 8 # 拟合的阶数 L = sym.pi # 周期的一半 n, x = sym.symbols('n x')

qq_41676952的博客 1万+

AC自动机 zoj3228 Searching the String

传送门:点击打开链接 题意:告诉你原串,告诉你很多个子串,有两种匹配模式,一种是可以重叠的匹配,一种是不能重叠的,问每个子串出现的次数。子串可能有重复的出现。 思路:这题揭示了AC自动机的两种处理方法。 首先是当AC自动机中出现有串重复的时候,我们应该怎么处理,我这里用到了一个数组pre,如果这个节点结尾的子串是第一次出现,pre标记为自己,如果这个节点结尾的子串不是第一次出现,那么就把pr

qwb的博客 965

高校学籍管理系统(SQL Server数据库课程设计)

摘要: 高校的管理工作是一项复杂且系统化的工作。而随着当代社会积极响应国家“科教兴国”的战略。高校建设规模和招生人数每年均高不下,庞大的学生群体对高校的管理工作带来了巨大的挑战。而对学生的学籍管理工作更是高校管理工作的一个重要环节。 面对高校学生学籍信息如此庞大的数据群,如采用传统的管理模式,管理工作的效率不仅低下,而且数据错误的发生率相对较高,还会产生人力和物力上的巨大开支。面对这样的情况,开发一个高校学籍管理系统就显得尤为重要。 运用高校学籍管理系统可以大大提高高校管理工作效率、方便系统维护、减小开支、

qq_52030824的博客 7万+

zoj3228 Searching the String AC自动机

Description Little jay really hates to deal with string. But moondy likes it very much, and she’s so mischievous that she often gives jay some dull problems related to string. And one day, moondy gave

xtulollipop 784

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1493

STM32 无线充电接收端硬件设计:从 LC 谐振到 PWM 控制的 5 大关键电路解析

本文深入解析了基于STM32的无线充电接收端硬件设计,重点探讨了LC谐振倍压整流、INA282电流采样、IR2104S半桥驱动、超级电容保护及STM32最小系统等5大关键电路。针对超级电容的恒功率充电需求,详细介绍了PID控制算法优化及PCB设计实战要点,帮助工程师提升无线充电系统的效率和可靠性。

weixin_31774841的博客 384

zoj 3228 Searching the String(AC自动机)

题目连接:zoj 3228 Searching the String 题目大意:给定一个字符串,然后现在有N次询问,每次有一个type和一个子串,问说子串在字符串中出现几次,type 为0时为可重叠,为1时为不可重叠。 解题思路:不过没有type=1的限制,那么就是普通的AC自动机匹配问题,对于不可重叠问题,可以对于每个节点记录 一下上一次匹配到的pos,用当前匹配的i减掉

不慌不忙、不急不躁 1177

Prokka实战:10分钟搞定细菌基因组注释(附详细参数解析)

本文深入解析Prokka细菌基因组注释工具的核心参数与实战策略。通过拆解其集成化工作流程,详细解读物种分类、功能注释、输出控制等关键参数,并提供快速初筛、高质量发表、质粒注释及批量处理四种典型场景的高效参数组合方案,帮助用户精准掌控注释过程,将原始序列转化为有价值的生物学见解。

weixin_29271053的博客 442

Searching the String ZOJ - 3228 (AC自动机+思维)

题目链接 题目大意:给定一个文本串,n个模式串,其中模式串有两种,一种是同一模式串可以有重合的部分,如ababa 出现两次aba,另一种是相同的模式串不允许重合,如ababa 出现1次aba.问所有的模式串各自在文本串中出现了多少次. 思路:对于第一种,可以重合的模式串,就是朴素的ac自动机。 对于第二种,相同模式串不能重合,我们可以知道,相同模式串有重合当且仅当第二次出现的位置-第一次出现的位置<字符串长度, 我们可以开一个数组last[],last[i]记录以i号节点结尾的单词,最新匹配成功的位置

矮纸斜行闲作草 1031

AI Agent + 大数据 + RAG:电商用户行为分析的低成本落地

本文探讨了AIAgent与大数据技术在电商用户行为分析中的应用。通过构建"数据采集-实时分析-智能决策"的全自治链路,解决了传统大数据分析的三大痛点:人工建模周期长、实时性不足和决策闭环断裂。系统采用Flink+Spark处理实时数据,结合基于DeepSeek-V3.1的AIAgent实现智能分析,并通过飞书RAG模块动态获取业务知识。落地效果显示,分析响应时间从2-3天缩短至30秒,推荐转化率提升134%,验证了该方案在提升电商数据决策效率方面的显著价值。

想~ai抽 1623

ArcGIS基础:城市交通网络构建及设施服务分析(一):道路数据处理与拓扑操作

首先需要加载数据, 1:选择这个数据库:,右键导入,选择导入单个要素,弹出“要素类至要素类” 2:输出位置(导入的数据是CAD格式数据)。 3:输出要素类为道路。 4:字段只保留道路类型字段。 这个操作是分类合并各级道路数据。 1:通过属性选择各类道路数据。 2:比如此类都是“干道”。 3:编辑器下来,然后合并即可。 得到如图所示,需要用到三个字段。 上面这个操作是打断道路相交线。 1:选中所有数据。 2:找到高级编辑中的打断相交线。 3:确定即可。 下面进行拓扑检查,虽然我们已经进行合并和打断相交.

yuanYW7556的博客 2万+

zoj 3228 Searching the String【ac自动机】

2896454 2012-05-18 16:35:19 Accepted 3228 C++ 2100 72084 zz_1215 2896441 2012-05-18 16:30:35 Compilation Error 3228 C++ 0 0 zz_1215 2896425 2

量子流逝 942

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

简介1980-2020年每五年土地利用数据-中国科学院

WW、forever的博客 3933

ZOJ 3228 Searching the String AC自动机

题目大意: 就是现在有N个( N

Gatevin的专栏 769

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

ZOJ 3228 Searching the String(AC自动机)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3228 解题思路: 给出一个长串,询问很多个模式串在这个长串中可重叠最大重复次数以及不可重叠最大重复次数。 首先KMP虽然处理可重叠和不可重叠很方便(不可重叠的情况完全匹配后j指针归0即可),但是无奈长串太长,模式串太多,所以肯定会T成狗 那么还是用AC自动...

shadiao.的博客 205

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ZOJ 3228 Searching the String(AC自动机)

题意:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3228 思路:AC自动机,不过匹配时要要分可重复使用相同串,和不可重复。。就是再find后,要进行一个初始位置与长度的判断,不能重复使用的,就找到后,更新最小初始位置, 详见注释,,(直接用饶齐的代码分析了,实在不想自己敲,现在也不是很有做题的心情。。) 代码: ...

AAAAAAAC的博客 160

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

zoj 3228 Searching the String 【AC自动机】

Searching the String Time Limit: 7 Seconds      Memory Limit: 129872 KB Little jay really hates to deal with string. But moondy likes it very much, and she's so mischievous that she often gives

世界很大 908

Searching the String ZOJ - 3228 (AC自动机)

Little jay really hates to deal with string. But moondy likes it very much, and she's so mischievous that she often gives jay some dull problems related to string. And one day, moondy gave jay anothe...

Top_Spirit的博客 280

ZOJ 3228 Searching the String(AC自动机)

题意:给出一个串A,再给出n个查询,每个查询为一个串,询问这个串在A中出现的次数,另外,每个串有个type,type为0时这个串允许覆盖,否则不允许覆盖。 思路:比较裸的AC自动机吧,对于不允许覆盖的单词,只要记录上一次查询到该串时的位置就行了。另外数据可能会有相同的串,因此用了map搞了下,时间感觉有点慢。。。 代码: #include #include #incl

绝望的乐园 940

ZOJ3228---Searching the String(AC自动机)

Little jay really hates to deal with string. But moondy likes it very much, and she’s so mischievous that she often gives jay some dull problems related to string. And one day, moondy gave jay another

Alex 992

ZOJ Problem Set - 3228 Searching the String AC自动机

Searching the String Time Limit: 7 Seconds      Memory Limit: 129872 KB Little jay really hates to deal with string. But moondy likes it very much, and she's so mischievous that she often g

636

ZOJ 3228 Searching the String AC自动机的不重复匹配

这个判断方法真的没想到。。。 对于在S中匹配M,如果M上一次的匹配位置pre与这一次的匹配位置now满足now-pre >= M.length,则加1。 这个判断太跳了233 。 #include #include #include #include #include #include #include #include #include #include #include #

自在飞花 971

ZOJ 3228. Searching the String (AC自动机)

题目: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3441 题意: 给定一个长串; 给定n个询问,每个询问给定询问类型和一个段串; 有两种询问类型: 0类型要求输出短串在长串中出现的次数(允许重叠); 1类型要求输出短串在长串中出现的次数(不允许重叠)。 分析: 允许重叠的容易,裸的AC自动机; 不允许重叠的只需这样处理:...

OI -> ACM -> AI 393

ZOJ3228 Searching the String (AC自动机)

Searching the String Time Limit: 7 Seconds Memory Limit: 129872 KB ...

weixin_30622181的博客 112

ZOJ3228 Searching the String —— AC自动机 + 可重叠/不可重叠

题目链接:https://vjudge.net/problem/ZOJ-3228 Searching the StringTime Limit:7 Seconds Memory Limit:129872 KB Little jay really hates to deal with string. But moondy likes it very much, an...

alince20008的博客 250

zoj3228 Searching the String [kuangbin专题-ac自动机]

这题考察对ac自动机深一步的使用。我们知道在利用ac自动机进行模式匹配时,是依据是否到达模式串最后一个字符对应的节点来判断是否出现的,因此是允许模式串相互重叠的。然而这一题出现了新的要求,输入数据会指定串能不能重叠,因此我们还需要保存一下每个串上次出现的位置,来判定是否存在重叠。 这里需要额外注意一个事情,就是说可能会出现两个相同串的不同询问,一次询问重叠,一次不重叠,因此insert时还需要处理一下这个情况,将第二次出现的串标记一下,并将它的id赋值为它第一次出现时给的id。 #include <b

Ayews的博客 206
上一篇: [AC自动机]hdu2222 Keywords Search
下一篇: [AC自动机+dp]PKU 3691--DNA repair
fstephen
博客等级 码龄18年 7粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值