好吧,这场比赛被完虐,3+3来的太不容易了,这题在之前见过类似的问题,不过那题至今没过,还是处于TLE的状态- -
题号是UVA11996,感兴趣的孩子可以去写写
这题的主要思路是利用splay维护序列,对于reverse和modify操作都可以直接利用splay来维护,主要的问题是lcp的求法,lcp比较直接的做法是二分长度,然后利用splay维护hash值。利用数据结构来维护hash值,这个在多校里面见过好多次了,最近的一场是FZU的B题?维护的是前缀hash值,和后缀hash值(为了翻转操作),判断区间的hash值是否相同即可,保险一点可以用双hash。
Manacher对于最长回文的求法,可以使用O(N)的Manacher算法
相对于那些大代码量的题,这题算是较短代码了,主要处理好splay的部分,对于求回文,直接把splay进行dfs下放,然后得到字符串,然后执行O(N)的回文即可。
这题需要注意的地方如下:
dfs的时候要下放,否则会有问题
l和r需要交换,如果l>r的话
代码量在280左右,splay的标准线
本文详细介绍了UVA11996比赛的解题思路,涉及利用Splay数据结构维护序列,处理reverse、modify操作,并解决LCP问题。文章还提到了Manacher算法在求解最长回文串的应用,提供了简洁高效的代码实现,适合对数据结构和算法感兴趣的读者深入学习。
633

被折叠的 条评论
为什么被折叠?



