2022 湖北省赛 J. Palindrome Reversion

  我是真没想到,昨天武理校赛第一次在正式赛过了字符串高阶题心血来潮写了篇题解;今天武大省赛字符串没过而且打得极其绝望,现在来写反思…


题目链接

  一开始想到分两种情况考虑:一是翻转的子串在中心点的一边,二是翻转的子串跨越了中心点
在这里插入图片描述

  接下来我会用上升或下降的线表示回文 or 相同的串,如
在这里插入图片描述

情况一:

  首先中间那部分和两端的必须是回文的,然后如果翻转后变成了回文串,那翻转的串和其关于中心点对称的那部分是相同的。官方题解里说的 APA的情况

在这里插入图片描述

情况二:

在这里插入图片描述

  图有点缭乱,可以看出来这就是官方题解里说的 PAA 的情况,翻转的串里是 PA,还有个 A跟在后面

  然后?然后就没了

  想了半天怎么用SA+LCP求这玩意,但是加上反转串跑高度数组也是不好求的。当时怎样想都要确定两个边界,复杂度就是 n 2 n^2 n2

  一开始也确实有想到去掉两端对称相同的部分,然后接下来不对称的地方肯定要翻转,CF上就有很多这样的字符串思维题。

  但是捏,我当时想着翻转的串可能包含了两端相同的部分,去掉了两端相同的部分后,就不能通过翻转这个串来使整个字符串为回文了。

先看下情况一:
在这里插入图片描述

  所以这种情况下这个子串两端是个回文,啊呸,对称相等。再看虚线内的部分,其实我只用翻转虚线内的就行了。

在这里插入图片描述

  情况二的也是同理,像这样画图也可以画出来,但我就不事后假努力PPT作图了。睡了睡了

官方题解:

在这里插入图片描述
  只能说自己太自以为是了,觉得学了SA和SAM后自己字符串还行,然后今天稍微有点思维直接GG。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值