随笔分类 -  字符串

摘要:题目传送门题意:给两个字符串s,t,可以在s字符串任意位置后面插入字符c(与前面的不同),问是否能够将s转换为t字符串构造:首先lens > lent 或者 s[1] != t[1] 一定是No,然后t最前面相同字符长度的部分在s中要相同,否则不能插入,之后的部分只要相同的部分全部存在,不同的部分可... 阅读全文
posted @ 2015-08-20 21:30 Running_Time 阅读(224) 评论(0) 推荐(0)
摘要:题目链接 题意:每个文本串的出现次数 分析:入门题,注意重复的关键字算不同的关键字,还有之前加过的清零。 新模板,加上last跑快一倍 阅读全文
posted @ 2015-08-17 20:58 Running_Time 阅读(206) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:多个文本串,多个模式串在每个文本串出现的次数 3 AC自动机:这就是一道模板题,杭电有道类似的题目 4 */ 5 /************************************************ 6 * Author ... 阅读全文
posted @ 2015-08-17 20:53 Running_Time 阅读(206) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:求形如(2 3 4) (4 3 2) (2 3 4)的最长长度,即两个重叠一半的回文串 3 Manacher:比赛看到这题还以为套个模板就行了,因为BC上有道类似的题,自己又学过Manacher算法,结果入坑WA到死 4 开始写的是判断... 阅读全文
posted @ 2015-08-12 10:41 Running_Time 阅读(231) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:问一个串在另一个串出现的次数(可重复) 3 KMP:模板题 4 */ 5 /************************************************ 6 * Author :Running_Time 7 * Cre... 阅读全文
posted @ 2015-08-10 13:48 Running_Time 阅读(242) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:求一个串重复出现(>1)的位置 3 KMP:这简直和POJ_2406没啥区别 4 */ 5 /************************************************ 6 * Author :Running_Tim... 阅读全文
posted @ 2015-08-10 13:45 Running_Time 阅读(194) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:一个串有字串重复n次产生,求最大的n 3 KMP:nex[]的性质应用,感觉对nex加深了理解 4 */ 5 /************************************************ 6 * Author :Ru... 阅读全文
posted @ 2015-08-10 13:43 Running_Time 阅读(133) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:求出一个串的前缀与后缀相同的字串的长度 3 KMP:nex[]就有这样的性质,倒过来输出就行了 4 */ 5 /************************************************ 6 * Author :Ru... 阅读全文
posted @ 2015-08-10 13:39 Running_Time 阅读(212) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 Manacher:该算法能求最长回文串,思路时依据回文半径p数组找到第一个和第三个会文串,然后暴力枚举判断是否存在中间的回文串 3 另外,在原字符串没啥用时可以直接覆盖,省去一个数组空间,位运算 >>1 比 /2 速度快,用了程序跑快200ms左右,位运算大... 阅读全文
posted @ 2015-08-08 10:11 Running_Time 阅读(154) 评论(0) 推荐(0)
摘要:题目传送门关于求解最长回文子串,有dp做法,也有同样n^2的但只用O(1)的空间,还有KMP,后缀数组?? 1 int main(void) { 2 while (scanf ("%s", str + 1) == 1) { 3 int len = strlen (st... 阅读全文
posted @ 2015-08-07 20:18 Running_Time 阅读(296) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 Rabin_Karp:虽说用KMP更好,但是RK算法好理解。简单说一下RK算法的原理:首先把模式串的哈希值算出来, 3 在文本串里不断更新模式串的长度的哈希值,若相等,则找到了,否则整个模式串的长度的哈希值向右移动一位 4 */ 5 /*********... 阅读全文
posted @ 2015-08-05 16:35 Running_Time 阅读(219) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:任意排列第一个字符串,使得有最多的不覆盖a/b字符串出现 3 字符串处理/贪心:暴力找到最大能不覆盖的a字符串,然后在b字符串中动态得出最优解 4 恶心死我了,我最初想输出最多的a,再最多的b,然而并不能保证是最多的:( 5 */ 6 #inc... 阅读全文
posted @ 2015-06-13 14:23 Running_Time 阅读(187) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:给出一系列名字变化,问最后初始的名字变成了什么 3 字符串处理:每一次输入到之前的找相印的名字,若没有,则是初始的,pos[m] 数组记录初始位置 4 在每一次更新时都把初始pos加上去,那么就保证更新了初始的名字,这也... 阅读全文
posted @ 2015-06-11 19:48 Running_Time 阅读(179) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 水题:三个字符串判断每个是否有相应的元音字母,YES/NO 3 下午网速巨慢:( 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 using nam... 阅读全文
posted @ 2015-06-09 15:10 Running_Time 阅读(159) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std... 阅读全文
posted @ 2015-06-08 10:32 Running_Time 阅读(144) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 模拟/字符串处理:主要是对*的处理,先把乘的预处理后再用加法,比如说是:1+2*3+4 = 1+..6+4 = 11 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include ... 阅读全文
posted @ 2015-06-07 18:29 Running_Time 阅读(221) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 字符串处理:要求解码,然而二维数组开不下,可以直接输出 3 只要在余数的地方判断一下就行了,vector的效率不高 4 另外:感觉麻烦的地方应该纸上写写就清楚了 5 */ 6 #include 7 #include 8 #include 9 #... 阅读全文
posted @ 2015-06-01 18:25 Running_Time 阅读(251) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 字符串处理:回文串是串联的,一个一个判断 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 const int MAXN = 1e... 阅读全文
posted @ 2015-05-27 18:52 Running_Time 阅读(181) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 题意:给出m个位置,每次把[p,len-p+1]内的字符子串反转,输出最后的结果 3 字符串处理:朴素的方法超时,想到结果要么是反转要么没有反转,所以记录 4 每个转换的次数,把每次要反转的反转就不超时了:) 5 */ 6 #... 阅读全文
posted @ 2015-05-26 17:28 Running_Time 阅读(109) 评论(0) 推荐(0)
摘要:题目传送门 1 /* 2 字符串处理:要求解码,然而二维数组开不下,可以直接输出 3 只要在余数的地方判断一下就行了,vector的效率不高 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #inc... 阅读全文
posted @ 2015-05-25 17:59 Running_Time 阅读(261) 评论(0) 推荐(0)