[POI2005] SZA-Template

freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch kamailio是个纯粹的SIP服务器。本文介绍先如何在debian8下安装debian5.0,然后详细介绍如何实现使用kamailio做freeswitch均衡负载。kamailio同时实现做为代理服务器、注册服务器、重定向服务器。 阅读详情

传送门
这道题一看到串串题,并且是老重复的,想到 k m p kmp kmp
但是光 k m p kmp kmp显然不太好做 e m m m m m emmmmm emmmmm
可以想到最后的答案一定是原串的一个 B o r d e r Border Border
怎么办呢,考虑 d p dp dp
f i f_i fi​表示把前 i i i个字符印完之后的印章长度最长是多少
那么我们可以得到一个转移:
f i = f n e x t i f_i=f_{next_i} fi​=fnexti​​
前提是上一个 n e x t j = n e x t i next_j=next_i nextj​=nexti​的 j j j要满足 j + f n e x t i ≥ i j+f_{next_i}\geq i j+fnexti​​≥i
否则就不能转移过来, f i = i f_i=i fi​=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;
}
基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验 本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。 阅读详情

相关推荐

常用的串口通信工具MobaXterm、Bus Hound、SScom等

本文介绍了四种PC端串口通信工具的功能和使用方法:MobaXterm支持SSH、FTP、串口等多种协议;Bus Hound用于监控CAN和串口数据;SScom专为串口和网口通信设计;ScriptCommunicator可进行串口通信并绘制波形图。每种工具都有详细的操作步骤图示,包括参数设置、数据监控等关键功能,并提供了官方和个人下载地址。这些工具各有特点,适用于不同的串口通信和数据分析场景。

sanqima的专栏 2483

SZA-Template

题目链接:SZA-Template 首先我们可以发现,答案一定是整个串的一个border。 什么border是合法的呢?就是可以覆盖到所有点。我们用border树考虑,也就是每个节点相邻的最大差值要小于等于当前border长度。所以我们可以建树之后,从根节点一直向点n跑,直到存在一个合法的border,对于删除操作,我们使用链表维护即可。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h

青烟绕指柔的博客 572

Nano Banana 2哪里使用?Nano Banana 2提示词合集和使用教程

收集最强的Nano Banana 2提示词合集,以及Nano Banana 2哪里使用的教程,并且有10个免费使用渠道。

qq_42927225的博客 1987

P3426 [POI2005]SZA-Template

洛谷博客链接 P3426 [POI2005]SZA-Template - 传送门 题意 给你一字符串,需要你制作一个印章,能用它盖出该字符串(当然不能多盖)。 求最小印章长度。 盖印章: 同一位置,一样字符可以重复盖; 同一位置,不同字符不能重复盖。 例如: 字符串为 ababbababbabababbabababbababbaba,印章为 ababbaba。 盖法如下: ababbababbabababbabababbababbaba ababbaba ababbaba

531 の 流 水 线 378

别再对着手册发愁了!手把手教你读懂MIPI-DSI初始化命令(以Rockchip平台为例)

本文深入解析MIPI-DSI初始化命令在Rockchip平台的应用,帮助嵌入式工程师快速掌握LCD屏幕调试技巧。从协议基础到实战指南,详细拆解命令格式、DCS与Generic命令的区别,并提供Rockchip平台的调试全流程与高级技巧,解决常见显示问题。

weixin_42519781的博客 262

mmsegmentation教程1:自定义数据集、config文件修改、训练教程

mmseg使用教程

weixin_42748439的博客 2万+

【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[nx...

zxyoi_dreamer的博客(不定期诈尸) 282

瑞萨单片机,把CS文件转换为CC

1、打开CC的软件: 点击坐上角的"START" 点击"Create New Project"的"GO": 导入工程: 如下图设置后,点击"Create" 2、进入到CC的开发界面: 可以看到原启动库文件以asm文件的方式直接出现在工程中: 删除新生成的main.c,保留导入的r_main.c(以你自己的代码为准): 注意添加所有的头文件路径: 点击"...

weixin_37611121的博客 1227

bzoj 1535: [POI2005]Sza-Template(fail树)

1535: [POI2005]Sza-TemplateTime Limit: 5 Sec  Memory Limit: 64 MBSubmit: 372  Solved: 195[Submit][Status][Discuss]DescriptionByteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段作为模版. 然后将模版重复喷涂到相应的位置后就得到了他想要的字符...

加载中... 591

i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架

net_device结构体在内核中指代一个网络设备,定义在,是一个非常大的结构体,包含网络设备的属性描述和操作接口,其中一些关键的成员如下。Linux在轮询处理机制和中断处理机制的基础上,提出了一种高效的网络处理技术NAPI。NAPI的核心思想是不全部采用中断来读取网络数据,而是采用中断来唤醒数据接收服务程序,在接收服务程序中采用poll的方法来轮询处理数据。提高短数据包的接收效率,减少中断处理的时间。...

Mculover666的博客(嵌入式) 1103

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

weixin_72050316的博客 1047

[POI2005]Sza-Template

Description Byteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段作为模版. 然后将模版重复喷涂到相应的位置后就得到了他想要的字符序列.一个字符可以被喷涂很多次,但是一个位置不能喷涂不同的字符.做一个模版很费工夫,所以他想要模版的长度尽量小,求最小长度是多少. Input 输入一行最多不超过500 000 个最少1个小写字符. Output 一个长度表示...

weixin_30266885的博客 109

浏览器缓存导致代码不更新?一招解决部署后用户仍看到旧页面的问题

方案效果适用场景文件名哈希永久解决前端工程化项目HTTP缓存头控制精准控制需服务器权限Meta标签部分生效临时补救方案最佳实践:入口HTML禁用缓存,静态资源使用哈希文件名 + 长期缓存,达到「秒级更新」+「高性能」的平衡!

江拥羡橙的博客 809

【border相关】【P3426】 [POI2005]SZA-Template

【border相关】【P3426】 [POI2005]SZA-Template Description 给定一个字符串 \(S\),要求一个最短的字符串 \(T\),使得 \(S\) 可以由 \(T\) 不断在后面接上自身得到。在拼接的时候, \(T\) 的某个后缀如果与某个前缀相同,则相同的部分可以算作一个,不再重复出现。 Limitations \(1 \leq |S| \leq 5...

weixin_30432007的博客 145

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【题解】[POI2005] SZA-Template

题意 给你一个长度为 n 的字符串,求印章长度的最小值,这个印章可以重复印刷同一个位置,但是每次必须恰好把所有字母都印到纸上。n<=5e5。 Solution: 考点:字符串匹配。 以为是水题,结果是神题。。。 kczno1kczno1kczno1 是用 双向链表 + fail 指针 做的。然而我们有更简洁的做法。来自于 PeterZPeterZPeterZ 。 设 f[i] 表示前缀为 i 的模板长度的最小值。 引理1:f[i] 的取值只能为 i 或 f[nxt[i]] 引理1.1:f[i]<

cqbzlydd的博客 344

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

P3426-[POI2005]SZA-Template【KMP】

正题 题目链接:https://www.luogu.com.cn/problem/P3426 题目大意 给出一个长度为nnn的字符串sss,求一个长度最小的字符串ttt使得sss所有ttt和ttt匹配的位置能覆盖串sss。 1≤n≤5×1051\leq n\leq 5\times 10^51≤n≤5×105 解题思路 首先答案肯定是原串的一个borderborderborder,设fif_ifi​表示前缀s1∼is_{1\sim i}s1∼i​的答案。 考虑如何转移,首先fif_ifi​至多是iii,然

QuantAsk 489

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[POI2005][luogu3462] SZA-Template [fail树]

题面 传送门 思路 首先,我们观察一下这个要求的“模板串”,发现它有如下性质: 1.一个模板串$A$是要求的文本串$B$的公共前后缀 2.如果一个模板串$A$有另一个模板串$B$(也就是$B$可以覆盖A),那么$B$是比$A$更优的一个解 3.如果模板串$A$可以完全覆盖文本串$B$,那么$A$在$B$中的匹配位置(按照开头算)之间的空格数不会超过$A$的长度 这三条性质都挺明显的是吧?...

157

bzoj 1535 [POI2005]Sza-Template KMP

题面 题目传送门 解法 花了好久终于把这道题弄懂了…… 可以发现,满足性质的字符串一定同时是整个串的前缀和后缀 首先考虑这样一个时间复杂度为O(n2)O(n^2)O(n2)的做法: 对原串进行KMP求出nxtnxtnxt数组,那么我们就可以一个一个枚举同时为前缀和后缀的字符串 考虑如何检验答案的合法性,找出该字符串在原串中出现的位置(这里指匹配到的最后一位),将这些位置标记一下。如果相邻标记点的...

mysterynoip的博客 426

【BZOJ】1535: [POI2005]Sza-Template

题意 给一个串\(s(1 \le |s| \le 500000)\),求一个最长的串,使得这个串能覆盖整个串(可以重叠)。 分析 首先这个串肯定是前缀也肯定是后缀。 题解 对串kmp后,建立\(fail\)树,则答案在根到\(n\)的路径上。假设当前串为\(a\),位置在\(i\),则所有出现了\(a\)的位置相邻两个的距离要小于等于\(|a|\),也就是在这个fail树中,\(i\)号...

195

【bzoj1535】[POI2005]Sza-Template【乱搞】

这道题我用一个思维难度和代码难度都比较低的算法过了,感觉性价比还是蛮高的qwq 我们首先设f[i]f[i]f[i]为s[i..n]s[i..n]s[i..n]和s[1..n]s[1..n]s[1..n]匹配的最大长度。 对于怎么求fff,我是直接二分+哈希乱搞求的。 考虑怎样的一个前缀的长度lll,可以作为模板。 对于所有f[i]≥lf[i]≥lf[i]\ge l的iii,也就是从i开始可...

2016gdgzoi471 707

bzoj1535[POI2005]sza-template

此题解无病呻吟,啰里啰嗦,现已加入零分作文全家桶 这题......坑死我了...... 不妨记原串长为i的前缀为prefix(i),next[i]表示prefix(i)的最长公共前后缀长度(不等于prefix(i)自身)(就是MP的next[]) 首先,一个前缀必须同时也是原串的后缀才有可能成为答案,否则原串的最后一部分无法覆盖。 所以我们沿着next表往前走,可以找出原串的所有公共前后缀...

weixin_30721899的博客 123

题解 [LuoguP3426][POI2005]SZA-Template

kmp 字符串算法

im_zyINF的博客 196

P3426 [POI2005]SZA-Template(kmp、dp)

神奇kmp dp

BUG_Creater_jie的博客 332
上一篇: [vijos1477] 跳动的水珠
下一篇: 余弦定理的证明及其应用 改进版
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值