解题思路:1.就是nxt数组不断嵌套递归下去就好了



2.如何统计子串出现的个数
我们从后往前遍历:根据那个图大的子串会包含小的子串,所以我们就处理前缀和将大的个数加到小的里面去


#include <cstdio>
#include <cstring>const int N = 1e5+5;int n, jump[N], c, r[N], dp[N];
char str[N];void getJump() {int k = 0;n = strlen(str+1);for (int i = 2; i <= n; i++) {while (k && str[i] != str[k+1])k = jump[k];if (str[i] == str[k+1])k++;jump[i] = k;}
}int main () {scanf("%s", str+1);getJump();c = 0;for (int i = jump[n]; i; i = jump[i]) {r[c] = i;c++;}memset(dp, 0, sizeof(dp));for (int i = n; i; i--) {dp[i]++;dp[jump[i]] += dp[i];}printf("%d\n", c+1);for (int i = c-1; i >= 0; i--)printf("%d %d\n", r[i], dp[r[i]]);printf("%d %d\n", n, dp[n]);return 0;
}

codeforces432D[kmp的next数组的运用]相关推荐

  1. KMP中next数组的理解

    next数组是KMP的核心,但对于next数组我们总是有时候感觉明白了,但有时候又感觉没明白,现在我就说下我自己对KMP中next数组的理解,首先next[i]上的数字的意义,next[i]表示的是当 ...

  2. CodeForces - 1137B Camp Schedule(KMP的next数组+构造)

    题目链接:点击查看 题目大意:给出一个主字符串s,再给出一个子字符串ss,主串和子串都是只由0或1所组成的字符串,现在要求重组主串s,要求重组后的字符串: 所包含的0与1的个数与之前保持一致 尽可能多 ...

  3. HDU - 1358 Period(KMP的next数组求最小循环节)

    题目链接:点击查看 题目大意:给出一个长度为n的字符串,问有哪些前缀是周期性字符串 题目分析:因为n给的很大,所以肯定不能暴力判断了,我们可以巧妙的利用kmp的next数组进行判断,next数组有一个 ...

  4. HDU - 3746 Cyclic Nacklace(KMP的next数组判循环节)

    题目链接:点击查看 题目大意:现在规定想要制作一串珍珠手链,需要用到两段一模一样的字符串首位相接而成,现在给定一个字符串,问最少需要添加几个珍珠才能满足条件 题目分析:一开始以为是个简单的模拟题,但后 ...

  5. KMP的Next数组应用总结

    Next数组求法 不用初始化,因为Next数组是递推出来的.用法为getFail(s,strlen(s)). const int MAX_N=101000; char str[MAX_N],patte ...

  6. KMP的next[]数组

    KMP是众多字符串问题的基础 理解next数组尤为重要 next又称前缀数组 是 它所处位置的前一个位置的元素 与 该链 链首开始 几个元素相匹配(即相同) 举个实例来说明: next对应的是该位置的 ...

  7. hdu3746 KMP的next数组应用,求项链首尾项链循环

    题意:       给你一个项链,问你最少加多少个珠子能满足整个项链是一个循环的项链(首尾相连) 思路:      KMP的简单应用只要了解next数组的意义就好说了,下面总结下  next在循环方面 ...

  8. Codeforces 432D Prefixes and Suffixes (KMP、后缀数组)

    题目链接: https://codeforces.com/contest/432/problem/D 题解: 做法一: KMP 显然next树上\(n\)的所有祖先都是答案,出现次数为next树子树大 ...

  9. HDU - 3374 String Problem(最小表示法+最大表示法+KMP的next数组)

    题目链接:点击查看 题目大意:给出一个字符串,现在问字符串不断向左循环所能形成的n个字符串中,字典序最小和最大的字符串的编号为多少,分别有多少个 题目分析:字符串最小表示法的模板题,证明和模板都是看大 ...

最新文章

  1. 牛!何恺明包揽2项ICCV 2017最佳论文奖!这位高考状元告诉你什么是开挂的人生
  2. 多协议底层攻击工具Yesinia
  3. 从零开始学python网络爬虫-教你从零开始学会写爬虫(Python)
  4. html 背景设为透明背景图片,Three.js中通过透明渲染设置默认背景图片
  5. 过滤选择器——子元素过滤选择器
  6. .Net Core建站(2):EF Core+CodeFirst数据库迁移
  7. 数据操纵语言 ,DML, 增删改
  8. html5如何绘制饼图,如何在HTML5中创建“饼图”?
  9. Python实例讲解 -- tkinter canvas (设置背景图片及文字)
  10. 字节跳动面试:java后端面试宝典
  11. 《21天学通C语言(第7版)》一6.6 课后研习
  12. 蓝桥杯:填字母游戏(第八届决赛javaB第五题) 博弈+递归+回溯+map记忆化
  13. 英语单词:前缀、后缀、词根---总结大全
  14. win10计算机更新后网络卡,win10更新后很卡怎么办
  15. ERR_NAME_NOT_RESOLVED错误的解决方法
  16. opencv(人脸检测和识别)
  17. SSM框架项目:米米商城后台管理系统
  18. Oracle数据库-02
  19. 根据QQ号获取昵称和头像
  20. Moon River

热门文章

  1. VUE的本地应用-V- show
  2. 3D视觉检测的未来:光度立体技术
  3. 基于卷积神经网络(CNN)的仙人掌图像分类
  4. java猜拳游戏代码
  5. 触发器实现两表之间的INSERT,DELETE,UPDATE
  6. js回调流程控制, 更高级, 更优雅
  7. 英特尔、高通争战物联网芯片 下个霸主会是谁
  8. Spring PropertyPlaceholderConfigurer
  9. 转: java并发编程-Executor框架
  10. 1.1.2 ADO.NET模型