【border树】【P2375】动物园】的更多相关文章

Description 给定一个字符串 \(S\),对每个前缀求长度不超过该前缀一半的公共前后缀个数. 共有 \(T\) 组数据,每组数据的输出是 \(O(1)\) 的. Limitations \(1 \leq |S| \leq 10^6,~1 \leq T \leq 5\) Solution 好水的NOI题 建出 \(border\) 树,对于树上每个节点,它的所有 \(border\) 与它的所有祖先一一对应.这是因为每个节点的父亲是它的最长 \(border\),数学归纳可以证明这个结论…
我要死了.这是我做过的最恶心的题之一. 天下第一的大毒瘤.有gay毒. 我不如熊猫好多年... 题意:给定字符串,求g[i],表示:[0, i]中满足该子串既是前缀又是后缀还不重叠的子串数. 解:题面都写了KMP,想必跟KMP有关. 然后我痛苦的思考了1天无果...... 我首先想到求出nex[]和f[],f[]表示可重叠的既是前缀又是后缀的子串数. 然后想找出f[]和g[]的关系,失败. 然后想到再来一个len[]表示f[]最长的那一个的长度,还是不行... 被折磨了一天,撑不住了,在吃完饭的…
题目详情 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:"对于一个字符串SS,它的长度为LL.我们可以在O(L)O(L)的时间内,求出一个名为next的数组.有谁预习了next数组的含义吗?" 熊猫:"对于字符串SS的前ii个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除外)…
入口 题目的大意就是输出以任意一个字符结尾,既是前缀,又是后缀,且长度不超过总长度的一半的方案书的乘积. 考虑使用kmp 在处理失配数组的同时,处理出来以每个字符结尾的时的,能有多少个前缀和后缀相同的数量. 然后在进行一次类似kmp的匹配,在这次匹配中处理出来答案. 先是为什么要处理多少个前缀和后缀相同的数量. 比如说,b是a的前缀和后缀,c是b的前缀和后缀(都合法) 然后c也肯定是a的前缀和后缀.处理出这个数组来,我们在寻求答案是只需要找到第一个符合条件的前缀&&后缀.加上我们预处理的个…
持续更新中!!!更个屁,无线停更! 前言: KMP 学傻了,看 skyh 说啥 border 树,跑来学 border 理论 洛谷云剪切板:https://www.luogu.com.cn/paste/gfkqhuyb(有小差别) 目录 I. 基础定义 基本定义 Period 与 Border 前缀函数 / KMP 自动机 KMP 算法 Border 树 / 失配树 II. 性质与定理 关于周期的基本定理 Border 的结构 Prefix-Suffix (PS) III. 一些问题 子串周期查…
[border相关][P3426] [POI2005]SZA-Template Description 给定一个字符串 \(S\),要求一个最短的字符串 \(T\),使得 \(S\) 可以由 \(T\) 不断在后面接上自身得到.在拼接的时候, \(T\) 的某个后缀如果与某个前缀相同,则相同的部分可以算作一个,不再重复出现. Limitations \(1 \leq |S| \leq 5 \times 10^5\) Solution 介绍一个叫 \(border\) 树的东西,在 OI 中被称作…
题目描述 对于一个字符串|S|,我们定义fail[i],表示最大的x使得S[1..x]=S[i-x+1..i],满足(x<i) 显然对于一个字符串,如果我们将每个0<=i<=|S|看成一个结点,除了i=0以外i向fail[i]连边,这是一颗树的形状,根是0 我们定义这棵树是G(S),设f(S)是G(S)中除了0号点以外所有点的深度之和,其中0号点的深度为-1 定义key(S)等于S的所有非空子串S'的f(S')之和 给定一个字符串S,现在你要实现以下几种操作: 1.在S最后面加一个字符…
TOC 建议使用 Ctrl+F 搜索 . 目录 小工具 / C++ Tricks NOI Linux 1.0 快速读入 / 快速输出 简易小工具 无序映射器 简易调试器 文件 IO 位运算 Smart Double 数论 GCD 快速幂相关 分数模板类 EI 的取模还原分数 逆元 整除分块 线性筛 扩展欧几里得算法 (exgcd) 类欧几里得算法 中国剩余定理 (CRT) & exCRT BSGS & exBSGS 积性函数筛子 组合计数 组合数取模 伯努利数 斯特林数 Catalan 数…
P2375 [NOI2014]动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:"对于一个字符串\(S\),它的长度为\(L\).我们可以在\(O(L)\)的时间内,求出一个名为next的数组.有谁预习了next数组的含义吗?" 熊猫:"对于字符串\(S\)的前\(i\)个字符构成的子…
[描述] cjBBteam拥有一个很大的野生动物园.这个动物园坐落在一个狭长的山谷内,这个区域从南到北被划分成N个区域,每个区域都饲养着一头狮子.这些狮子从北到南编号为1,2,3,…,N.每头狮子都有一个觅食能力值Ai,Ai越小觅食能力越强.饲养员cmdButtons决定对狮子进行M次投喂,每次投喂都选择一个区间[I,J],从中选取觅食能力值第K强的狮子进行投喂.值得注意的是,cmdButtons不愿意对某些区域进行过多的投喂,他认为这样有悖公平.因此cmdButtons的投喂区间是互不包含的.…