首页 > 其他 > 详细

2016——3——16 kmp习题

时间:2016-03-16 23:58:28      阅读:371      评论:0      收藏:0      [点我收藏+]

1、传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2725

  题目大意:找一个串在另一个串中出现的次数

  题解:kmp(纯裸题)

2、传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2732

  题目大意:给你一个字符串,让你求出最大重复周期(最大周期不和本身重合)

  题解:kmp或者扩展kmp(但我并未用这种方法),我用的是kmp,但是一直WA,原来是求next数组把while写成了if(手抖毁一生)。

     好吧,写题解了:用kmp求出next数组,然后在去递归next[n],因为j=next[next[n]]一直next下去直到其的next为0就ans+=n-j;

这就可以求出不和母串一样的最大重复周期,但是这又有一个问题你在求j时要递归时间就有可能为n^2的所以在每次递归时改变next的值就好了(详见代码);

3、传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2726

  题目大意:给出一个字母组成的矩阵,找出一个最小的子矩阵,使得这个子矩阵的无限复制扩张之后的矩阵包含原来的矩阵,例如 
      ABABA 
      ABABA 
      他的最小重复子矩阵是AB 

 

2016——3——16 kmp习题

原文:http://www.cnblogs.com/HQHQ/p/5285438.html

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