[ac自动机]zoj3228 Searching the String

利用dxflib读写cad文件 本篇主要在qt做一个例子读取cad文件数据,使用的开源库是dxflib。用到dxflib的DL_CreationAdapter,DL_Dxf。DL_Dxf是用来读取.dxf文件的类,DL_CreatinAdapter是一个容器,当DL_Dxf加载.dxf文件后,就会响应DL_CreationAdapter这个类,读取cad数据。我们来看看... 阅读详情
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:

fasterlio原理及代码框架梳理 Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。 阅读详情

相关推荐

BeikeShop跨境电商独立站系统V1.5.0免授权全开源版

BeikeShop 一款开源好用的跨境电商系统,BeikeShop 是基于 Laravel 开发的一款开源商城系统,主要面向外贸/跨境电商行业提供商品管理、订单管理、会员管理、支付、物流、系统管理等功能。BeikeShop商城 Beike多语言商城 多货币商城B2C商城系统 代码100%开源 PHP商城系统 H5/PC商城 跨境电商系统 跨境商城系统 电商商城系统 Laravel 9 框架插件化开发,MVC架构 支持插件市场。Event 机制实现Hook功能,自定义可视化装修。

820

AC自动机 zoj3228 Searching the String

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

qwb的博客 965

Ubuntu配置Qt Creator树莓派交叉编译环境一步到位

本文详细指导在Ubuntu系统上配置Qt Creator树莓派交叉编译环境。从工具链安装、sysroot创建到Qt库编译,逐步讲解如何搭建完整的ARMv7交叉编译工具链,实现高效开发树莓派应用。

1277

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

泄露测试仪CTS的Sentinel I28使用

本文介绍:泄露测试仪CTS的Sentinel I28使用

qq_34047402的博客 2205

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

weixin_40239644的博客 8707

zoj 3228 Searching the String(AC自动机)

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

不慌不忙、不急不躁 1177

YOLOv11 损失函数进阶:SlideLoss 让小目标检测精度飙升

创建self.loss_fun = loss_fun # 基础损失函数(如BCEWithLogitsLoss)self.loss_coef = loss_coef # 损失系数# 计算滑动权重:根据预测与真实值的差异判断样本难度# 难度越高,权重越大该类在原有损失函数的基础上,通过diff计算样本预测与真实值的差异(差异越大,样本越难),进而生成动态权重,实现对难样本的重点学习。

m0_64661770的博客 218

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

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

矮纸斜行闲作草 1031

29.Labview界面设计 --- (下篇)自定义控件库、界面布局与外观设计

1.自定义控件外观(自定义控件)1.1 自定义外观库1.2 手动自定义控件外观2. 前面板控件布局方式(控件排布)2.1 模块化控制布局方式2.2 数据采集布局方式3. 前面板外观优化项(背景设计)3.1 前面板背景设计3.2 前面板窗口整理本节第一部分教大家安装一种可以直接用的自定义控件库,第二部分教大家如何自己设计控件并保存调用。

关注我,更多技术问题欢迎私聊~ 4783

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 384

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

Cesium教程(十七):淹没分析

淹没分析是根据某片区域的地形及洪水流量速度,动态模拟该地形区域水位逐渐上涨的淹没过程。该功能可适用于山区、丘陵等地形起伏较大区域,模拟洪水涨到安全限定高度的淹没过程,为防洪水救灾提供一定的参考。此外,还可以为河谷地带修建水利工程设计与选址提供参考依据。

WwLK123的博客 3008

ZOJ 3228 Searching the String AC自动机

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

Gatevin的专栏 769

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ZOJ 3228 Searching the String(AC自动机)

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

shadiao.的博客 205

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ZOJ 3228 Searching the String(AC自动机)

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

AAAAAAAC的博客 160

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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、付费专栏及课程。

余额充值