博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1535: [POI2005]Sza-Template(fail树)
阅读量:2143 次
发布时间:2019-04-30

本文共 840 字,大约阅读时间需要 2 分钟。

Time Limit: 5 Sec  
Memory Limit: 64 MB
Submit: 372  
Solved: 195
[ ][ ][ ]

Description

Byteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段作为模版. 然后将模版重复喷涂到相应的位置后就得到了他想要的字符序列.一个字符可以被喷涂很多次,但是一个位置不能喷涂不同的字符.做一个模版很费工夫,所以他想要模版的长度尽量小,求最小长度是多少.拿样例来说 ababbababbabababbabababbababbaba , 模版为前8个字符ababbaba, 喷涂的过程为: ababbababbabababbabababbababbaba

Input

输入一行最多不超过500 000 个最少1个小写字符.

Output

一个长度表示模版最小的长度.

Sample Input

ababbababbabababbabababbababbaba

Sample Output

8

想到这题就很简单了,建起来就过了,感觉网上很多题解都很不错,讲的特别详细,我就偷个懒啦

至于为什么还要用链表,其实这是为了优化,并且这个优化非常好想到

#include
#include
#include
#include
using namespace std;vector
G[500005];char str[500005];int len, fail[500005], son[500005], L[500005], R[500005];void Sech(int u, int p){ int i, v; if(u!=0) { R[L[u]] = R[u]; L[R[u]] = L[u]; len = max(len, R[u]-L[u]); } for(i=0;i

转载地址:http://aqmgf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】283-Move Zeroes
查看>>
【LEETCODE】217-Contains Duplicate
查看>>
【LEETCODE】219-Contains Duplicate II
查看>>
【LEETCODE】220-Contains Duplicate III
查看>>
【LEETCODE】171-Excel Sheet Column Number
查看>>
【LEETCODE】169-Majority Element
查看>>
【LEETCODE】191-Number of 1 Bits
查看>>
【LEETCODE】13-Roman to Integer
查看>>
【LEETCODE】83-Remove Duplicates from Sorted List
查看>>
【LEETCODE】70-Climbing Stairs
查看>>
【LEETCODE】198-House Robber
查看>>
【LEETCODE】62-Unique Paths
查看>>
【LEETCODE】310-Minimum Height Trees
查看>>
【LEETCODE】207-Course Schedule
查看>>
【LEETCODE】263-Ugly Number
查看>>
【LEETCODE】202-Happy Number
查看>>
和机器学习和计算机视觉相关的数学
查看>>
十个值得一试的开源深度学习框架
查看>>
【LEETCODE】240-Search a 2D Matrix II
查看>>
【LEETCODE】53-Maximum Subarray
查看>>