首页 > 其他分享 >p4555-solution

p4555-solution

时间:2024-03-04 20:58:03浏览次数:39  
标签:max p4555 lm solution 更新 rm 最大值 回文

P4555 Solution

link

双回文串的左右两半部分显然是互相独立的。

于是考虑求出 \(lm_i\) 表示以 \(i\) 结尾的最长回文子串长度,\(rm_i\) 表示以 \(i\) 开头的最长回文子串长度,最后扫一遍所有的分隔符求 \(lm+rm\) 的最大值即可。

考虑如何求 \(lm,rm\)。先用 manacher 拉出 \(p\),那么可以利用 \(p\) 先进行一次更新:

\[lm_{i+p_i-1}\gets\max(lm_{i+p_i-1},p_i-1) \]

\[rm_{i-p_i+1}\gets\max(rm_{i-p_i+1},p_i-1) \]

这时候你发现我们只更新了最大值的部分。

例如 abcba 这个回文串我们只让 \(lm_5\) 对 \(5\) 取了最大值,让 \(rm_1\) 对 \(5\) 取了最大值。

我们可以考虑让 \(lm_5\) 的值倒着推回前面,更新前面的 \(lm\)。(\(rm\) 同理)

具体地,你发现 \(lm_4\) 可以取到 \(lm_5\) 的长度减去两端的两个 \(a\) 的贡献,也就是说我们有以下更新:

\[lm_i=\max(lm_i,lm_{i+2}-2) \]

\[rm_i=\max(rm_i,rm_{i-2}-2) \]

\(\pm2\) 的原因是我们只在分隔符之间转移。

复杂度 \(\mathcal O(n)\)。

标签:max,p4555,lm,solution,更新,rm,最大值,回文
From: https://www.cnblogs.com/iorit/p/18052646

相关文章

  • Solution - 消息传递
    Link。首先我们假设在看本文章的所有人除了@左乐都已经使用点分树A掉了震波。然后我们要怎么简单修改A掉这个消息传递呢。震波是维护距离\(\leqk\)的点,这里只需要维护\(=k\)的,显然我们可以改掉维护前缀和的那个数据结构(比如树状数组),直接用普通数组/vector。跳......
  • p4137-solution
    P4137Solutionlink考虑建主席树:权值线段树的叶子维护这个权值最后出现的下标,push_up的时候取\(\min\)。这样一个区间的\(\min\)小于\(k\)意味着有一个权值最后出现的下标小于\(k\),也就是说\(k\)后面没有出现这个权值。也就是说mex就在这个区间内。这样询问的时候......
  • p3990-solution
    P3990Solutionlink一次只能跳一步的情况下:\(dp_{i,j}=dp_{i-1,j-1}+dp_{i-1,j}+dp_{i-1,j+1}\)接下来考虑能跳奇数步:你发现跳\(3\)步相当于先跳一个奇数\(1\)再跳一个\(2\),跳\(5\)步相当于先跳一个奇数\(3\)再跳一个\(2\)也就是说能够一步跳到\((i,j)\)的一定能......
  • p3773-solution
    P3773Solutionlink\[\binomnm\bmod2=\binom{n\bmod2}{m\bmod2}\binom{n/2}{m/2}\bmod2\]我们要让\(\binomnm\bmod2\)不为\(0\),也就是让右式的两项均不为\(0\)。考虑\(\binom{n\bmod2}{m\bmod2}\):\(n\bmod2\)和\(m\bmod2\)的取值要么是\(0\)要么是\(1\)......
  • p3768-solution
    P3768Solutionlink\(\begin{aligned}\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j)&=\sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^nijd[\gcd(i,j)=d]\\&=\sum_{d=1}^nd^3\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}ij[......
  • p3435-solution
    P3435Solutionlink画个图:显然四个黄色部分是相等的。也就是说,黄色部分是A的一个border。根据题目,周期的长度也就是Q的长度,也就是A的长度减去它的某个border的长度。现在要求这个最大,由于A的长度固定,要求的也就是A的最小border长度。根据KMP求出来的nxt......
  • p3426-solution
    P3426Solutionlink考虑dp。设\(dp_i\)表示至\(i\)的字符串的答案。KMP求出nxt数组,那么显然\(dp_i\)要么等于\(i\)要么等于\(dp_{nxt_i}\)。什么时候\(dp_i\)等于\(dp_{nxt_i}\)呢?这时这个字符串一定由一个与\(nxt_i\)有相同\(dp\)值的前缀再印上一个bo......
  • p3306-solution
    P3306Solutionlink\(x_{i+1}\equiva\timesx_i+b\pmodp\)\(x_{i+1}\equiva(ax_{i-1}+b)+b\pmodp\)\(x_{i+1}\equiva(a(ax_{i-2}+b)+b)+b\pmodp\)\(...\)\(\displaystylex_{i+1}\equiva^ix_1+b\sum\limits_{j=0}^{i-1}a^j\pmodp\)即......
  • p3214-solution
    P3214Solutionlink为了方便,我们求有序的答案最后再除掉\(m!\)。题目的限制包括:每种元素总共出现偶数次不存在相同的两个集合没有空集考虑偶数的限制,你发现每个集合中元素出现次数要么\(0\)要么\(1\)。于是如果你确定了前\(m-1\)个集合,最后一个集合会被唯一......
  • p2791-solution
    P2791Solutionlink给你\(N,M,S,L\),\(S\)组询问,每次给出\(n,m,k\),表示有\(m\)个\(1\)和\(n-m\)个\(0\),求随机选出\(k\)个数的和的\(L\)次幂的期望,模数\(998244353\)。\(S\le200,L\le2\times10^5,M\leN\le2\times10^7\),每次询问的\(n,m,k\)满足\(m,k\len......