题意:求每一个前缀,跟前缀相同的每个子串。

此题:网上很多都是假程序,不过也AC了,的确我测试几个案例之后的的确确是存在这个问题。

分析:每一个前缀,可以考虑KMP,f失配指针,如何求得它出现了多少次呢?

如果f > 0 ,至少这个前缀是符合的,但是,你会少算一些,例如:

你会少算子串a,怎么弥补回来呢? 继续递归下去(其实不是递归啦),找这个子串,是否还可以找出子串和前缀相同。

完美解决了~~~

#include <bits/stdc++.h>using namespace std;const int maxn = 200010;
const int MOD = 10007;
char P[maxn];
int f[maxn];
int len;int main()
{//freopen("in.txt","r",stdin);int t;cin>>t;while(t--) {cin>>len>>P;f[0] = f[1] = 0;for(int i = 1; i < len; i++) {int j = f[i];while(j&&P[i]!=P[j]) j = f[j];f[i+1] = P[i]==P[j] ? j+1 : 0;}int ans= len;for(int i = 1; i <= len; i++){int tmp = f[i];while(tmp){ans = (ans + 1) % MOD;tmp = f[tmp];}}cout<<ans<<endl;}return 0;
}

转载于:https://www.cnblogs.com/TreeDream/p/7748214.html

HDU 3336 KMP相关推荐

  1. HDU 3336 Count the string(KMP+DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题意:给你一个字符串,计算其所有前缀在该字符串出现的次数的总和. 思路:next[j]=i,代表 ...

  2. HDU 3336 Count the string KMP

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3336 如果你是ACMer,那么请点击看下 题意:求每一个的前缀在母串中出现次数的总和. AC代码: # ...

  3. hdu 2594 kmp

    这个题和kmp算法的共同点,也就是可以用kmp解的原因,在于当前缀所在串(kmp中的模式串)字符pj≠后缀所在串(kmp中文本串)字符tj时,应使前缀串(kmp中模式串)尽量往右移动最大位移,而暴力算 ...

  4. HDU 2087 (KMP不可重叠的匹配) 花布条

    题意: 用两个字符串分别表示布条和图案,问能从该布条上剪出多少这样的图案. 分析: 毫无疑问这也是用KMP匹配,关键是一次匹配完成后,模式串应该向后滑动多少. 和上一题 HDU 1686 不同,两个图 ...

  5. HDU - 3336 next运用+递推

    题目的匹配应该也要看成一个文本串与另一个模式串的匹配过程 Text是以当前i结尾的后缀来匹配Pattern的前缀(非真) 这里的Pattern肯定是可以匹配成功的,直接由next来保证(next总是当 ...

  6. HDU 1867 KMP

    题意: 求str1 的最长后缀与 str2 的最长前缀.使得 str1+str2  的长度最小,并且字典序最小(str1和str2可以互换) 题解: kmp的p数组的含义:p[i]表示以i为结尾的字符 ...

  7. hdu 2594(kmp)

    1 /* 2 * KMP 3 * 思路:把两个串连接,然后求next[]数组值 4 * 注意:当两个串都是重复串且重复子串一样是,要特殊处理 5 */ 6 7 #include <cstdio& ...

  8. Oulipo HDU - 1686 (kmp初见讨伐!)

    题目链接 题意:给你两个字符串s,t.让你求在s中t出现了多少次. 解题思路: 先写前缀函数(前缀函数的写法点这里了解) 然后就是常规KMP模板了.统计答案时重置pos_t的位置. 错误原因:对重置p ...

  9. HDU 1686 [KMP]

    题目链接 思路:本题需要求出模式串在主串里的出现次数,利用KMP求出即可 /* --------------KMP算法-------------- 用于在字符串S中匹配字符串T本题利用KMP算法进行匹 ...

最新文章

  1. IOS App 后台运行
  2. linux文件和目录基本管理系统,Linux文件基本操作管理和系统目录结构
  3. 华为主题包hwt下载_华为主题 | 星黛露
  4. 3DSlicer25:Report an Error
  5. 北京内推 | 京东AI研究院计算机视觉实验室招聘三维视觉算法研究型实习生
  6. 【渝粤教育】电大中专新媒体营销实务 (13)作业 题库
  7. screen命令使用说明
  8. fstream下的读写操作
  9. 给力!使用MacPilot解锁macOS 1200多个隐藏功能!(支持M1处理器mac)
  10. Navicat for mysql 远程连接 mySql数据库10061错误问题
  11. django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)
  12. 怎样才能办理信用卡成功?
  13. php使用框架优缺点,PHP四大主流框架的优缺点总结(上)
  14. 拓端tecdat|采用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析
  15. 最新手机号码归属地数据库(2017年4月1日)
  16. 问卷分析SPSS+AMOS实证步骤
  17. mysql 客户端命令行_Windows的MySQL命令行客户端
  18. Hibernate的一对一,一对多/多对一关联保存
  19. mysql 表名 字段名_MySQL 查询所有数据库名和表名及字段名
  20. 如何制作六一儿童节答题测试H5页面?

热门文章

  1. 聚焦国际农民丰收节贸易会-张桃林:农业谋定开放新格局
  2. github绑定自己的域名
  3. java performance tools / NetBeans Profiler / Sun BTrace / Eclipse MAT / IBM ISA
  4. ExtJs组件之间的相互访问,访问机制
  5. poj 1961 Period
  6. 自定义Android标题栏TitleBar布局
  7. 产品经理应该掌握的信息架构知识
  8. 网易=4 ×(新浪 + 搜狐)
  9. 【五】搜索推荐技术在电商导购领域的应用——截图小王子
  10. java程序打包成exe安装包总结