[POI2005] SZA-Template
传送门
这道题一看到串串题,并且是老重复的,想到kmpkmpkmp
但是光kmpkmpkmp显然不太好做emmmmmemmmmmemmmmm
可以想到最后的答案一定是原串的一个BorderBorderBorder
怎么办呢,考虑dpdpdp
fif_ifi表示把前iii个字符印完之后的印章长度最长是多少
那么我们可以得到一个转移:
fi=fnextif_i=f_{next_i}fi=fnexti
前提是上一个nextj=nextinext_j=next_inextj=nexti的jjj要满足j+fnexti≥ij+f_{next_i}\geq ij+fnexti≥i
否则就不能转移过来,fi=if_i=ifi=i
然后前面那个东西随便那个桶存一下就好了
#include <bits/stdc++.h>
using namespace std;# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)typedef long long ll;const int N=5e5+5;template<typename T> void read(T &x){x=0;int f=1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';x*=f;
}int ls;
char s[N];
int nxt[N],f[N],lst[N];int main()
{scanf("%s",s+1);ls=strlen(s+1);nxt[1]=0;for(int i=2,j=0;i<=ls;i++){while(s[j+1]!=s[i]&&j)j=nxt[j];if(s[j+1]==s[i])j++;nxt[i]=j;}Rep(i,1,ls){if(lst[f[nxt[i]]]<i-f[nxt[i]])f[i]=i;else f[i]=f[nxt[i]];lst[f[i]]=i;}// Rep(i,1,ls)printf("%d ",nxt[i]);// puts("");printf("%d\n",f[ls]);return 0;
}
[POI2005] SZA-Template相关推荐
- 微信小程序模板template
上面是官方的讲解, 主要是方便在不同的地方调用. 下面自己说下使用, 先创建一个模板名字是自己随便取的, 在template.wxml中填写模板 最外层用template标签 设置一个name属性 & ...
- C++中模板template typename T
template <typename Dtype>. 网上解释的非常多,觉得比较啰嗦,其实就是一个类型模板. 比如我们要计算两个数的加法,针对不同类型可能需要设计不同类型的函数,那么tem ...
- 让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录一键生成SCSS/LESS结构,敏捷开发必备插件!!!
Ctrl+Shift+X 搜索AutoScssStruct4Vue 如上图直接右键-autoScssStruct(你都不需要聚焦到template节点) 直接就给你妥妥的把SCSS代码写好了,如果 ...
- ue4商城资源 Car Configurator Template 汽车配置器模板
ue4商城资源 Car Configurator Template 汽车配置器模板 ue4商城资源 Car Configurator Template 汽车配置器模板 Unreal Engine虚幻游 ...
- C++ template
(转自http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.html) C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或 ...
- 使用Repeater的Template
.NET FX提供了一个方法,就是使用Template来在程序运行时对Repeater的显示进行控制. 这里我就不多说了,可以去看MSDN中的相关资料.(嘿嘿,其实我也没搞多少 ).. 其实主要是pr ...
- 设计模式之模板方法模式(Template Method)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 微信小程序模块化开发 include与模板开发 template
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 正文: 1. include 是引用整个wxml文件,我通常会配合js,css一起使用: 使用场景,需要封装 ...
- template.process(root, out)的用法(shiro项目中来的九)
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...
- Smart template的控件能否当成普通控件来用
我的同事问过我这个问题: 只要弄清楚Smart control的原理,就能回答这个问题. 答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合ODat ...
最新文章
- 普华永道2030汽车产业报告 私家车真正Out了!
- WordPress简约响应式自媒体资讯博客主题Qui-Pure v5.25
- canvas实现抽奖插件—大转盘和九宫格
- VoLTE技术中的会话持续性-SRVCC
- latex 设置pdf的页边距
- 10无法更新系统_2020年4月公积金网上系统更新后无法登陆故障解决办法
- MySQL之可视化软件
- FPGA SPI协议
- sigmoid/softmax指数运算溢出问题的解决方法
- 计算机二级考试真题李阳答案,英语二级笔译_二级笔译培训_二级笔译真题 - 沪江英语...
- ruby语言+Devkit 工具
- 【DFS 水洼数目】
- 记录:阿里云滑动验证
- 2021年安徽省大数据与人工智能应用竞赛人工智能(网络赛)-本科组赛题
- IntelliJ IDEA for Mac 2018.1.2 智能Java IDE开发工具 破解版下载
- 自动化收取蚂蚁森林能量(无须连接电脑)
- 用python写了个全国疫情中高风险地区查询
- 算法四:跳楼梯问题2
- 解决 clean-webpack-plugin www has been removed 问题
- python+opencv图片分割字符