【字符串】[CodeForces 963D] Frequency of String【无实现】

http://codeforces.com/contest/963/problem/D

Description

给出一个字符串S
n次询问,每次询问给出正整数k和字符串m
要求字符串T的最小长度,满足T是S的子串,且m在T中出现了至少K次

n,|S|,|m|100000
保证询问的串互不相同

Solution

一开始看到这题就想SAM然后fail树上乱搞
然后就搞不出来。。

事实上可以暴力
M=|m|
首先询问串的长度种类数最多只有M
最坏就是1,2,3,4,....xx(x+1)2=M,x是根号M级别的

每个长度的所有串在|S|中出现次数之和是|S|级别的
因此所有询问串在|S|中出现次数之和是|S|M

这样就可以暴力了
用AC自动机先把所有出现的位置弄出来
Fail树上乱搞一波,直接扫一扫就好了

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzj1054689699/article/details/80316430
上一篇[JZOJ5710] Mex
下一篇【数论】[51Nod 1847] 奇怪的数学题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭