首页 > 其他 > 详细

明豪的疑惑

时间:2020-01-01 22:47:23      阅读:85      评论:0      收藏:0      [点我收藏+]

时间限制3.5s,空间512MB

题目描述

T组数据,每组给出一段字符串,求其中不同的回文串有几个。

数据范围

T<=10,len<=1e6.

题目解析

正解是回文自动机,答案为自动机中节点数-2,但是并不会。

考场上写了一个花里胡哨的马拉车加trie。

跑马拉车时若当前直接匹配到的地方为cj[i],则用并查集加二分查找找出该点所对应的trie节点,之后继续匹配时向trie中加数,答案是trie中非‘#’字符个数。复杂度O(len *loglen*t).

爆炸了100——20.无法debug.

发现其他人暴力过了。于是可以在匹配完成后如果该串长度大于cj[zai*2-i],则暴力往trie中加入该回文串(除第一位外不加‘#’),复杂度O(玄学)。答案即为trie中节点个数-1(多一个‘#’)

莫得办法。

明豪的疑惑

原文:https://www.cnblogs.com/betablewaloot/p/12130205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!