【POI2005】SZA-Template(KMP)
传送门
题解:
首先可以确定答案是这个串的一个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)相关推荐
- jzoj3208. 【JSOI2013】编程作业(kmp)
题面 Description Will相信,很多同学都有过这样的经历:大牛已经写好了编程作业,而作为菜鸟的自己不会写怎么办呢?拿大牛的代码抄一下嘛!但是提交一模一样的作业是不是不太好?于是就改一改变量 ...
- 【POJ2406】Power Strings(KMP)
problem 求每个字符串的最短循环子串,输出循环次数 solution 任何一个字符串的[1,Next[n]]与[n-Next[n],n]一定是匹配的. 那么如果n%(n-Next[n])==0, ...
- 【FPGA】Buffer专题介绍(三)
目录 背景 IOBUF IOBUFDS OBUF OBUFDS OBUFT OBUFTDS 背景 首先给出这个专题的第一个地址:[FPGA]Buffer专题介绍(一) 第二篇的地址:[FPGA]Buf ...
- 【FPGA】Buffer专题介绍(二)
目录 背景 IBUF IBUFDS IBUFG IBUFGDS 背景 这篇博文是下面这篇博文的继续: [FPGA]Buffer专题介绍(一) 但介绍方式我想放的更自由一点,要不然就是官方文档了. IB ...
- 【FPGA】Buffer专题介绍(一)
目录 背景 BUFG BUFGCE BUFGCE_1 BUFGMUX and BUFGMUX_1 BUFGP BUFH BUFIO2 BUFIO2FB 背景 在数据手册 Spartan-6 Libra ...
- 【翻译】泛型图片库(GIL)教程(上)
原文引用自 http://stlab.adobe.com/gil/html/giltutorial.html 翻译引用自(注:修改并重新翻译) http://www.cppprog.com/boost ...
- 【GAMES101】作业3(提高)与法线贴图原理和渲染管线框架分析
目录 1. 作业描述 1.1 任务 1.2 编译与运行 1.3 框架与代码说明 2. 需要注意的问题 3. 解 3.1 rasterize_triangle 3.2 get_projection_ma ...
- 【JDK7】新特性(2) 语法
2019独角兽企业重金招聘Python工程师标准>>> JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进. 1.二进制字面量 JDK7开始,终于可以用二进制来表 ...
- 【Python】将字典(dict)转化为Dataframe
[Python]将字典(dict)转化为Dataframe_张欣的博客-CSDN博客_python字典转dataframe dictory = {'a':1,'b':2} df = pd.DataFr ...
- 【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系
上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. [ MATLAB ]离散傅里叶变换(DFT)以及逆变换(IDFT)的MAT ...
最新文章
- Office 365管理员指引 17——Sharepoint 讨论版
- AndoridSQLite数据库开发基础教程(10)
- 厦门“快捷贷”项目启动 最高可贷500万
- XML学习笔记02【xml_解析】
- 荣耀高管回应“标杆”质疑:被对标学习的才能是标杆
- Java基础:参数是如何传递的
- Array类型的扩展
- 单目相机与激光标定相关文章与代码(草稿)
- 计算机 添加环境变量,windows系统手动添加环境变量的方法
- c++ 11/14新特性
- 说说你印象中比较深刻的 Bug
- led伏安特性实验误差分析_为什么非线性电阻元件伏安特性曲线的误差分析?
- 水质环境监测系统解决方案
- java 上传图片 生成缩略图_上传图片同时生成缩略图
- Opencv计算机视觉入门——图像的处理(一)
- 中软干两年有用吗_在中软国际的两年,是我成长最快的阶段
- 【中秋快乐】是什么让友小盟选择在中秋节加班?
- 【JDK源码剖析】Queue--队列 PriorityQueue--优先队列
- Freemarker模板生成排版缩进问题
- 阿哲---正式入住CSDN