Never give in.

弱小和无知不是生存的障碍,傲慢才是。

【字符串】[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
想对作者说点什么? 我来说一句

C++ 字符串的链接

2011年07月30日 265B 下载

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

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭