传送门


题解:

首先可以确定答案是这个串的一个border,一个border能覆盖全串的条件就是所有border包含这个位置的右端点之间的最大间距不能超过这个border的长度。

可以建立nxt树来判断,但是实际上有更加简单的做法。

设f[i]f[i]f[i]表示考虑了s[1⋯i]s[1\cdots i]s[1⋯i]这个串的答案,显然要么是iii要么是f[nxt[i]]f[nxt[i]]f[nxt[i]],直接记录一下上一个答案在这个位置的串的位置进行比较就行了。


代码:

#include<bits/stdc++.h>
#define ll long long
#define re register
#define cs constcs int N=5e5+7;char s[N];
int n;
int nxt[N],f[N],las[N],h[N];signed main(){scanf("%s",s+1);n=strlen(s+1);for(int re i=2,j=0;s[i];++i){while(j&&s[i]!=s[j+1])j=nxt[j];if(s[j+1]==s[i])++j;nxt[i]=j;}f[1]=1;for(int re i=2;s[i];++i){f[i]=(h[f[nxt[i]]]>=i-nxt[i])?f[nxt[i]]:i;h[f[i]]=i;}std::cout<<f[n]<<"\n";return 0;
}

【POI2005】SZA-Template(KMP)相关推荐

  1. jzoj3208. 【JSOI2013】编程作业(kmp)

    题面 Description Will相信,很多同学都有过这样的经历:大牛已经写好了编程作业,而作为菜鸟的自己不会写怎么办呢?拿大牛的代码抄一下嘛!但是提交一模一样的作业是不是不太好?于是就改一改变量 ...

  2. 【POJ2406】Power Strings(KMP)

    problem 求每个字符串的最短循环子串,输出循环次数 solution 任何一个字符串的[1,Next[n]]与[n-Next[n],n]一定是匹配的. 那么如果n%(n-Next[n])==0, ...

  3. 【FPGA】Buffer专题介绍(三)

    目录 背景 IOBUF IOBUFDS OBUF OBUFDS OBUFT OBUFTDS 背景 首先给出这个专题的第一个地址:[FPGA]Buffer专题介绍(一) 第二篇的地址:[FPGA]Buf ...

  4. 【FPGA】Buffer专题介绍(二)

    目录 背景 IBUF IBUFDS IBUFG IBUFGDS 背景 这篇博文是下面这篇博文的继续: [FPGA]Buffer专题介绍(一) 但介绍方式我想放的更自由一点,要不然就是官方文档了. IB ...

  5. 【FPGA】Buffer专题介绍(一)

    目录 背景 BUFG BUFGCE BUFGCE_1 BUFGMUX and BUFGMUX_1 BUFGP BUFH BUFIO2 BUFIO2FB 背景 在数据手册 Spartan-6 Libra ...

  6. 【翻译】泛型图片库(GIL)教程(上)

    原文引用自 http://stlab.adobe.com/gil/html/giltutorial.html 翻译引用自(注:修改并重新翻译) http://www.cppprog.com/boost ...

  7. 【GAMES101】作业3(提高)与法线贴图原理和渲染管线框架分析

    目录 1. 作业描述 1.1 任务 1.2 编译与运行 1.3 框架与代码说明 2. 需要注意的问题 3. 解 3.1 rasterize_triangle 3.2 get_projection_ma ...

  8. 【JDK7】新特性(2) 语法

    2019独角兽企业重金招聘Python工程师标准>>> JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进.     1.二进制字面量 JDK7开始,终于可以用二进制来表 ...

  9. 【Python】将字典(dict)转化为Dataframe

    [Python]将字典(dict)转化为Dataframe_张欣的博客-CSDN博客_python字典转dataframe dictory = {'a':1,'b':2} df = pd.DataFr ...

  10. 【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系

    上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. [ MATLAB ]离散傅里叶变换(DFT)以及逆变换(IDFT)的MAT ...

最新文章

  1. Office 365管理员指引 17——Sharepoint 讨论版
  2. AndoridSQLite数据库开发基础教程(10)
  3. 厦门“快捷贷”项目启动 最高可贷500万
  4. XML学习笔记02【xml_解析】
  5. 荣耀高管回应“标杆”质疑:被对标学习的才能是标杆
  6. Java基础:参数是如何传递的
  7. Array类型的扩展
  8. 单目相机与激光标定相关文章与代码(草稿)
  9. 计算机 添加环境变量,windows系统手动添加环境变量的方法
  10. c++ 11/14新特性
  11. 说说你印象中比较深刻的 Bug
  12. led伏安特性实验误差分析_为什么非线性电阻元件伏安特性曲线的误差分析?
  13. 水质环境监测系统解决方案
  14. java 上传图片 生成缩略图_上传图片同时生成缩略图
  15. Opencv计算机视觉入门——图像的处理(一)
  16. 中软干两年有用吗_在中软国际的两年,是我成长最快的阶段
  17. 【中秋快乐】是什么让友小盟选择在中秋节加班?
  18. 【JDK源码剖析】Queue--队列 PriorityQueue--优先队列
  19. Freemarker模板生成排版缩进问题
  20. 阿哲---正式入住CSDN

热门文章

  1. 克服焦虑最好的办法就是让一切变得有序
  2. 百度信息流介绍,没有比这更详细的啦
  3. 对数 java_Java对数函数及Java对数运算
  4. 修改安卓默认的系统button样式,以及其它系统控件的默认样式
  5. ABB机器人6.13版手册下载
  6. 10000php换人民币,转 数字转大写人民币
  7. 微信活码系统/微信群二维码/活码生成系统/生成微信活码
  8. SkinH皮肤使用教程,及皮肤效果测试工具
  9. 如何通过移动广告平台实现手游推广
  10. win10怎么把屏幕分成多个屏幕 win10把屏幕分成多个屏幕方法