题意不是很明确,我来解释一下样例  的前缀分别有

,其中 Q 的长度分别为 

题目清楚之后,当 QQ 的前缀为 a 的时候,a-Q (即后缀)必须与 Q 的某前缀相同,Q 近可能大,所以 a-Q 尽可能小

emmmm,举个例子:

当 a 为  的时候,Q 应该为 ,QQ 为 ,我们发现 a 中的 最后一个  是 QQ 中的第 3 个  ,同时是第 2 个 Q 的第一个 

发现  的最短公共前后缀为 ,这就是题目要让我们求的

for(int i=2;i<=n;i++){res=f[i];while(f[res]) res=f[res];if(res) ans+=i-res;
}

其中 f[] 为 next[] ,但是这样会超时,所以利用记忆化搜索, res[i] 表示到 i 位置最小的公共前后缀

const int N=1e6+5;int n,m;int i,j,k;char s[N];int f[N];void getfail(char *s)
{f[0]=f[1]=0;int len=strlen(s);for(int i=1;i<len;i++){int j=f[i];while(j && s[i]!=s[j]) j=f[j];if(s[i]==s[j]) f[i+1]=j+1;else f[i+1]=0;}
}int main()
{//IOS;while(~sd(n)){ss(s+1);getfail(s+1);ll ans=0;for(int i=1;i<=n;i++){if(!f[i]) continue;while(f[f[i]]) f[i]=f[f[i]];//dbg(f[i]);ans+=i-f[i];}pll(ans);}//PAUSE;return 0;
}

洛谷 P3435 [POI2006]OKR-Periods of Words(KMP+记忆化搜索)相关推荐

  1. 【题解】洛谷P3435 [POI2006] OKR-Periods of Words(KMP)

    洛谷P3435:https://www.luogu.org/problemnew/show/P3435 思路 来自Kamijoulndex大佬的解释 先把题面转成人话: 对于给定串的每个前缀i,求最长 ...

  2. 落谷 P1464 function (空间换时间、记忆化搜索)

    题目描述 对于一个递归函数w(a,b,c)w(a,b,c)w(a,b,c) 如果a≤0a \le 0a≤0 or b≤0b \le 0b≤0 or c≤0c \le 0c≤0就返回值111. 如果a& ...

  3. 洛谷 2921 记忆化搜索 tarjan 基环外向树

    洛谷 2921 记忆化搜索 tarjan 传送门 (https://www.luogu.org/problem/show?pid=2921) 做这题的经历有点玄学,,起因是某个random题的同学突然 ...

  4. 洛谷:尼克的任务【记忆化搜索】【记忆化搜索的使用条件】

    个人对记忆化搜索有以下感悟[不保证一定正确,但保证有参考价值] 我们将搜索的过程看成在一个有向无环图上遍历的过程[也必然是这个过程]: 首先,记忆化搜索之所以能让时间复杂度为指数级别的搜索过程降到线性 ...

  5. 洛谷P1057 传球游戏(记忆化搜索)

    点我进入题目 题目大意:n个小孩围一圈传球,每个人可以给左边的人或右边的人传球,1号小孩开始,一共传m次,请问有多少种可能的路径使球回到1号小孩. 输入输出:输入n,m,输出路径的数量. 数据范围:4 ...

  6. 洛谷P4133 [BJOI2012]最多的方案(记忆化搜索)

    题意 题目链接 求出把$n$分解为斐波那契数的方案数,方案两两不同的定义是分解出来的数不完全相同 Sol 这种题,直接爆搜啊... 打表后不难发现$<=1e18$的fib数只有88个 最先想到的 ...

  7. 巧用记忆化搜索代替暴力递归(洛谷P1464题题解,Java语言描述)

    题目要求 P1464题目链接 分析 如果--你信了这题干,真的写了递归--TLE警告!!! 所以,就需要优化嘛-- [−9223372036854775808,9223372036854775807] ...

  8. 洛谷3953 (NOIp2017) 逛公园——记忆化搜索+用栈判0环

    题目:https://www.luogu.org/problemnew/show/P3953 因为K只有50,所以想到用dp[ cr ][ j ]表示在点cr.比最短路多走了 j 的方案数.(看了TJ ...

  9. 洛谷 p1434 滑雪【记忆化搜索】

    <题目链接> Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  10. 洛谷 P1434 [SHOI2002]滑雪(DP,记忆化搜索)

    题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道在一个区域中最长 ...

最新文章

  1. dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)
  2. Bind for 0.0.0.0:80 failed: port is already allocated.解决方案
  3. python3 如何让字典保持有序
  4. 日常SQL常见问题(二)
  5. Java 8 - CompletableFuture组合式异步编程
  6. 【数学和算法】初识卡尔曼滤波器(五)
  7. [zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
  8. Kubernetes应用程序开发认证(CKAD) 经验分享
  9. 深度学习--Keras总结
  10. 英特尔 超核芯显卡 620mac_英特尔也玩马甲?有关USB TypeC的冷知识你了解多少
  11. 3-36Pytorch与tensorboardX
  12. systemctl命令_开发者必备Linux命令
  13. 计算机网络-01-计算机网络体系结构
  14. 浪潮信息能制造超级计算机吗,浪潮信息为中国航天探索事业出力 高性能计算技术领衔...
  15. 解决【Windows+Delphi+多线程+String】效率低的问题
  16. 基于MAX2671设计的400Mhz混频器
  17. 完整版代码(亲测可用),给网站加上访客统计—你是第位访客
  18. PHP文件怎么改tne,修改 · thinkphp6文档 · 看云
  19. 3.2 Execution Model
  20. IDEA的maven命令总是下载很多东西 解决办法

热门文章

  1. 红米note2卡在android,红米note2怎么插卡?红米note2插卡流程详解
  2. 今天七夕给大家送个“对象”吧!拿走不谢!
  3. 青果教务系统API(Java版)
  4. python随机漫步_Python实现随机漫步功能
  5. snmp使用默认团体名_snmp默认团体名/弱口令漏洞及安全加固
  6. minIO安装教程及代码使用
  7. [摘]PKM:个人知识管理
  8. 数据治理-数据生命周期管理一
  9. html meta标签‘http-equiv’属性的详解用法
  10. python微博评论情感分析_用python对鹿晗、关晓彤微博进行情感分析