题目链接:SZA-Template


首先我们可以发现,答案一定是整个串的一个border。
什么border是合法的呢?就是可以覆盖到所有点。我们用border树考虑,也就是每个节点相邻的最大差值要小于等于当前border长度。所以我们可以建树之后,从根节点一直向点n跑,直到存在一个合法的border,对于删除操作,我们使用链表维护即可。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=5e5+10;
int n,fail[N],vis[N],pre[N],suf[N],mx=1; char str[N];
vector<int> g[N];
void del(int x){mx=max(mx,suf[x]-pre[x]);suf[pre[x]]=suf[x],pre[suf[x]]=pre[x];for(int to:g[x]) del(to);
}
void dfs(int x){if(mx<=x) cout<<x,exit(0);for(int to:g[x]) if(!vis[to]) del(to);for(int to:g[x]) if(vis[to]) dfs(to);
}
signed main(){scanf("%s",str+1); n=strlen(str+1);for(int i=2,j=0;i<=n;i++){while(j&&str[i]!=str[j+1]) j=fail[j];if(str[i]==str[j+1]) j++;fail[i]=j;}for(int i=1;i<=n;i++) g[fail[i]].push_back(i),pre[i]=i-1,suf[i]=i+1;for(int i=n;i;i=fail[i]) vis[i]=1;dfs(0);return 0;
}

SZA-Template相关推荐

  1. 微信小程序模板template

    上面是官方的讲解, 主要是方便在不同的地方调用. 下面自己说下使用, 先创建一个模板名字是自己随便取的, 在template.wxml中填写模板 最外层用template标签 设置一个name属性 & ...

  2. C++中模板template typename T

    template <typename Dtype>. 网上解释的非常多,觉得比较啰嗦,其实就是一个类型模板. 比如我们要计算两个数的加法,针对不同类型可能需要设计不同类型的函数,那么tem ...

  3. 让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录一键生成SCSS/LESS结构,敏捷开发必备插件!!!

    Ctrl+Shift+X 搜索AutoScssStruct4Vue   如上图直接右键-autoScssStruct(你都不需要聚焦到template节点) 直接就给你妥妥的把SCSS代码写好了,如果 ...

  4. ue4商城资源 Car Configurator Template 汽车配置器模板

    ue4商城资源 Car Configurator Template 汽车配置器模板 ue4商城资源 Car Configurator Template 汽车配置器模板 Unreal Engine虚幻游 ...

  5. C++ template

    (转自http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.html) C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或 ...

  6. 使用Repeater的Template

    .NET FX提供了一个方法,就是使用Template来在程序运行时对Repeater的显示进行控制. 这里我就不多说了,可以去看MSDN中的相关资料.(嘿嘿,其实我也没搞多少 ).. 其实主要是pr ...

  7. 设计模式之模板方法模式(Template Method)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  8. 微信小程序模块化开发 include与模板开发 template

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 1. include  是引用整个wxml文件,我通常会配合js,css一起使用: 使用场景,需要封装 ...

  9. template.process(root, out)的用法(shiro项目中来的九)

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  10. Smart template的控件能否当成普通控件来用

    我的同事问过我这个问题: 只要弄清楚Smart control的原理,就能回答这个问题. 答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合ODat ...

最新文章

  1. Qt中文手册 之 QHeaderView
  2. 数据结构实验——中缀表达式转为后缀表达式
  3. TensorRT推理报错:pycuda._driver.LogicError: cuMemcpyHtoDAsync failed: invalid argument
  4. modelsim的库仿真流程--1
  5. python3精要(26)-map
  6. qtabwidget设置tab高度_VC|富文本编辑框CRichEditCtrl的字体与段落设置
  7. 【分享-免费下载】免费下载配乐/视频/平面设计/游戏素材
  8. php伪静态不支持中文,Discuz开启伪静态导致中文会员使用手机无法访问的解决方法...
  9. HTML5应用程序缓存Application Cache
  10. Prometheus 原理和实践,含docker部署Prometheus、node Exporters、Alertmanager、Push Gateway、grafana
  11. 使用Adobe Acrobat去除PDF文件签名
  12. 【微信篇】微信自动登录设置
  13. php 字符串大写转小写转大写,字符串大小写批量互相转换 - 在线工具
  14. 雷达原理(一):雷达波形
  15. layui的layer弹出层内置方法
  16. 机器学习:Experiment 5: Regularization
  17. python图片镜像翻转_python中镜像实现方法
  18. 将彩色照片变成黑白照片
  19. 【Ubuntu】Ubuntu16.04安装GTX960M显卡驱动(960、1070and 750ti直接图形界面安装亲测能用,1080需要到命令界面安装亲测能用)
  20. 你以为有钱人不快乐?他们都是在骗你的

热门文章

  1. 带你领略MotionLayout的魅力(中)
  2. HTML 动态背景
  3. 查看Android应用内存的方法,Android获取App内存使用情况的方法
  4. Android编译时注解处理器
  5. Caused by: java.sql.SQLException: Value ‘0000-00-00‘ can not be represented as java.sql.Date
  6. 新手预算2000元左右买什么吉他好?高性价比单板民谣吉他推荐
  7. 解读如何打造支撑万亿规模的K8s集群?
  8. 怎么在苹果手机计算机上打字,苹果手机怎样设置打字是中文的
  9. ubuntu下安装lua和luarocks
  10. 【1 - 决策树 - 原理部分】菜菜sklearn机器学习