
字符串
文章平均质量分 72
Lndulge.
一个蒟蒻 OIer
还在努力中 noip加油!
这个博客用来记录笔记和做的题。。
展开
-
[笔记]:[字符串]trie数的基本构造
Trie 树, 又称字典树,单词查找树。它来源于retrieval(检索)中取中间四个字符构成(读音同try)。用于存储大量的字符串以便支持快速模式匹配。主要应用在信息检索领域。原创 2017-05-12 10:46:12 · 354 阅读 · 0 评论 -
洛谷P1210回文检测
题目描述据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去寻找这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母’A’-‘Z’和’a’-‘z’。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。我们将保证最长的回文不会超过2,000个字符(在除去标点符号、原创 2017-07-15 20:00:06 · 488 阅读 · 0 评论 -
[笔记]:[字符串] kmp算法
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。原创 2017-05-12 19:46:27 · 371 阅读 · 0 评论 -
[转] 最长回文子串——Manacher算法
转自https://segmentfault.com/a/1190000003914228 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词) 1. Brute-force 解法 对于最长回文转载 2017-05-17 18:27:39 · 579 阅读 · 0 评论 -
string类一些常用函数用法
insert string的成员函数insert有以下多种重载:string &insert(int p0, const char *s);——在p0位置插入字符串sstring &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符string &insert(int p0,const string &s);——在p0位置插入字符串ss转载 2017-05-15 15:05:25 · 363 阅读 · 0 评论 -
[poj 2001] Shortest Prefixes(tire树的简单应用)
Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 18363 Accepted: 7962原创 2017-05-12 15:29:30 · 389 阅读 · 0 评论 -
[洛谷 2580] 于是他错误的点名开始了 (字典树)
题目背景XS中学化学竞赛组教练是一个酷爱炉石的人。他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900)。题目描述这之后校长任命你为特派探员,每天记录他的点名。校长会提供化学竞赛学生的人数和名单,而你需要告诉校长他有没有点错名。(为什么不直接不让他玩炉石。)输入输出格式输入格式: 第一行一个整数 n,表示班上原创 2017-05-16 09:50:08 · 528 阅读 · 0 评论 -
[vijos 1425]子串清除
描述我们定义字符串A是字符串B的子串当且仅当我们能在B串中找到A串。现在给你一个字符串A,和另外一个字符串B,要你每次从B串中从左至右找第一个A串,并从B串中删除它,直到A串不为B串的子串,问你需要进行几次删除操作。 格式输入格式输入文件共2行,第一行一个字符串A(长度小于256),第二行一个字符串B。 30%的数据是随机生成的; 50%的数据满足输入文件大小小于300KB; 100%的数据转载 2017-05-15 18:33:13 · 466 阅读 · 0 评论 -
[vijos 1677] 陶陶的名字(kmp)
背景陶陶是一个智能机器人,他能像人一样思考问题,不过由于IQ问题,他给自己取了一个很长很长的名字。 描述某一天,陶陶想把自己的名字涂在墙上。由于他的名字太长,为了省事,他从自己名字的开头截取了一段作为模板。我们不妨设这个模板的长度为l,陶陶的名字的长度为L,那么有1≤l≤L。然后陶陶会用这个模板进行若干次喷涂,喷出自己的名字原创 2017-05-13 09:36:53 · 569 阅读 · 0 评论 -
[poj 2752] Seek the Name,Seek the Fame(kmp算法)
POJ-2752 Seek the Name, Seek the Fame ——-KMP Seek the Name, Seek the Fame Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8261 Accepted: 3883 DescriptionThe little cat is so fam原创 2017-05-13 08:21:36 · 491 阅读 · 0 评论 -
[vijos 1379] 字符串的展开
描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的 字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续 递增的字母获数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。在 本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:原创 2017-05-15 11:12:46 · 522 阅读 · 0 评论 -
[noip 2011普及组No.2] 统计单词数
背景noip2011 NO.2 描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),原创 2017-05-15 16:36:52 · 1565 阅读 · 0 评论 -
Manacher算法
Manacher算法Manacher 算法 又名 ==马拉车算法==也是回文自动机此算法专门解决求回文串的问题求回文串的问题 首先有暴力做法1. Brute-force 解法枚举每一个子串 判断是否回文 此方法当然是最好想到的暴力但是时间复杂度显然是O(n^3)的 明显数据稍微大一点就不可过2. Brute-force 优化版此时枚举每个中点向左右扩展 奇数个和偶数个分开讨论此时的时间复杂度为O(原创 2017-07-15 19:59:44 · 423 阅读 · 0 评论