![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串--------------
文章平均质量分 69
sprite_
这个作者很懒,什么都没留下…
展开
-
codeforces 278B New Problem
B. New Problemtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputComing up with a new problem isn't as easy as many peo原创 2015-05-10 22:45:33 · 548 阅读 · 0 评论 -
poj3461 Oulipo(KMP)
题目链接:http://poj.org/problem?id=3461题目大意:给两个字符串p和s,问p在s中出现了几次。思路:KMP模板题。用KMP算法可以知道p是否在s 中出现,如果要知道出现几次,其实还是模拟匹配过程。如果匹配到一个成功的字符串,就继续看下去,同时j=next[j],相当于在第plen+1的地方字符串失配了,要重新给p定位。代码:#incl原创 2015-11-05 19:36:32 · 438 阅读 · 0 评论 -
poj 2406 Power Strings(KMP)
题目链接:http://poj.org/problem?id=2406题目大意:给出一个字符串,这个字符串一定能够以a^n表示。现在问n最大为多少。思路:对于这个字符串来说,我可以算出他的next数组,然后能够得到这整个字符串的最大前缀和后缀相同的值next[len]。然后可以发现len-next[len]就是这个a的长度。所以就自己猜了一下= =如果len%(len-ne原创 2015-11-06 15:45:26 · 449 阅读 · 0 评论 -
POJ 1961 Period(KMP)
题目链接:http://poj.org/problem?id=1961题目大意:跟前面那题一样,只是这题要求出这个字符串里面所有的能够组成a^n形式的情况。思路:还是应用next数组,对于各种情况可以暴力枚举len,选取符合情况的。代码:#include#include#include#includeusing namespace std;int min(原创 2015-11-06 16:40:25 · 316 阅读 · 0 评论 -
POJ 2752 Seek the Name, Seek the Fame(KMP)
题目链接:http://poj.org/problem?id=2752题目大意:给一个字符串,求出他前缀和后缀相同时的他们的长度。思路:还是next数组的应用,先求整个字符串的next数组,然后可以知道next[len],代表着整个字符串的最大相同前缀和后缀长度x。然后看next[x],意思就是前x个字符的最大相同前缀和后缀长度,按照这样的方式一直循环,直到next[x]=原创 2015-11-06 16:02:14 · 471 阅读 · 3 评论 -
hdu5510 (KMP+剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510题目大意:给n个字符串,求出最大的i使得对于第i个字符串,他的前i-1个字符串中至少有一个不是他的子串。思路:很容易想到利用KMP算法判断子串,但是直接操作是会超时的,所以我们加上一个剪枝:设立一个vis[i]数组,举个例子:如果1是3的子串,则令vis[1]=1,然后原创 2015-11-01 21:10:14 · 810 阅读 · 2 评论 -
hdu5568 sequence2(dp+大数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568题目大意:给一段长度为n的序列,现在在其中取k个,问这k个是递增的取法有多少种。范围:n思路:可以用dp来解决,跟前面做过的一题一样。设f[i][j],代表在前i个里面选了长度为j并且以a[i]为结尾的取法,那么就有转移方程:f[i][j]=Σf[k][j-1](a原创 2015-11-25 18:46:16 · 599 阅读 · 0 评论 -
hdu1251 统计难题(Trie树入门题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075Trie树的入门题。代码:#include#includeconst int maxnode=1000005;const int sigma_size=26;struct Trie{ int ch[maxnode][sigma_size]; int sz; int原创 2016-07-25 20:59:07 · 1028 阅读 · 0 评论 -
poj3261Milk Patterns(后缀数组)
题目链接:http://poj.org/problem?id=3261题目大意:给一个字符串。问这个字符串中可重叠子串出现的次数超过K次的最大子串长度。思路:利用后缀数组height数组性质,我们可以知道相邻子串的公共前缀x,只要x的出现次数大于等于K就可以了。那么我们可以二分长度然后判断是否存在这种情况即可。代码:#include#include#include原创 2016-08-03 21:30:46 · 641 阅读 · 0 评论 -
poj 1743 Musical Theme(后缀数组、二分)
题目链接:http://poj.org/problem?id=1743题目大意:求不重叠的最长相同变化的子串,也就是最大长度的不重叠重复子串,输出其长度。思路:可以利用后缀数组中的height数组。height数组的性质:hegiht[i]表示后缀排名i和i-1的最长公共子序列。现在要求不重叠的重复子串,我们可以将height分组,对于hegiht[i]>=p来说,既然已经原创 2016-08-23 16:00:01 · 493 阅读 · 0 评论 -
hdu5371 Hotaru's problem(manacher 算法+枚举)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371题目大意:给一串数字,在子串中找到“1-2-1”的形式,其中1和2 是回文串,找出最长的那一串。思路:利用manacher算法得出最长序列。观察子串形式,1和2是回文串,其实2和后面那个1也是回文串。在之前我们已经通过manacher算法得到了每个数字所能延伸的长度,所以我们只要枚举第原创 2015-08-17 20:39:16 · 630 阅读 · 0 评论 -
hdu3068最长回文(manacher算法)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3068思路:直接套用manacher算法。manacher算法是用于计算一个字符串中最长回文子串的长度。资料来源网络:http://www.felix021.com/blog/read.php?2040#include#include#define min(a,b) a<b?a:原创 2015-08-17 20:24:08 · 1213 阅读 · 0 评论 -
codeforces #313(div 2)
B. Gerald is into Arttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGerald bought two very rare paintings at the So原创 2015-07-23 09:39:32 · 721 阅读 · 0 评论 -
UVA 10115 Automatic Editing
在白书上面刘汝佳字符串推荐的最后一题!做完这组题目,学了很多新的string库里面的函数。同时对scanf(),getchar(),gets()这些输入也有了一定的了解。strcmp(s1,s2),字符串比较函数;strcpy(s1,s2),字符串拷贝函数;strcat(s1,s2),字符串连接;strlen(s),测字符串长度;strncmp(s1,s2,size),原创 2015-07-12 17:15:14 · 506 阅读 · 0 评论 -
UVA 644 Immediate Decodability
题目意思是:给你一些字符串,将其进行比较,如果有一个字符串是另一个字符串的前缀,就认为是not immediately。如果没有一个字符串是另一个的前缀,就认为是 immediately。所以可以先将输入的字符串按照长度从小到大sort一遍,然后都比较一次就可以了。不知道为什么自己写的比较函数交不上去= =,然后用了库里面的strncmp函数。strncmp函数是指定比较s1和s2中的前m原创 2015-07-12 16:41:31 · 745 阅读 · 0 评论 -
UVA 10010 Where's Waldorf?
题目大意:给定一个矩阵,里面是一些字母。要求找到指定字符串的位置,其中单词必须是一条直线(刚开始这里没看到 = =,英语是硬伤。)所以可以直接往八个方向搜索,不过这里只是往一个方向搜索(满足直线要求)。由于不区分大小写,搜索之前可以做个预处理,将小写字母全部转化成大写字母。#include#include#include#includeusing namespace std;原创 2015-07-07 22:38:21 · 861 阅读 · 0 评论 -
UVA 10361 Automatic Poetry
题目要求很简单,给两个字符串,第一个字符串中有'’的符号,整个字符串可以分为s1s3s5。第二个字符串中结尾是'...'。要求输出两个字符串,一个是将第一个字符串中的''去掉,另一个是在第二个字符串后面加上s4s3s2s5。直接模拟即可。#include#include#include#includeusing namespace std;int main(){ int n,l1原创 2015-07-08 17:33:02 · 590 阅读 · 0 评论 -
UVA 409 Excuses, Excuses!
题目大意:给定几个keywords,再给几个excuses,要求从中找出keywords最多的excuse。如果有几个excuse一样多,就都输出来。其中要求出现的keyword是有条件的:If a keyword occurs more than once in an excuse, each occurrance is considered a separate incidence.原创 2015-07-10 17:46:40 · 657 阅读 · 0 评论 -
UVA 10878 Decode the tape
终于在UVA上看到一题短的题目,高兴了一下。看完题目以后就懵了。然后就找规律了。。。。。。。发现每一行都代表一个字母,然后我就从a开始一个个的对照,把他写出来。然后就发现了某种规律:每行的重要位置都是由‘o’和‘—’组成的,数一下发现恰好有7个,然后就想到了阿斯克码。果然第一个代表2^6,第二个代表2^5,以此类推……如果是'o'就代表1*2^x,否则就是0,相加以后的值就是字母的阿斯克码。原创 2015-07-10 21:41:24 · 626 阅读 · 0 评论 -
UVA 401 Palindromes
题目要求:给一个字符串,判断其为回文串,或是镜像串,或是两者都有,或是两者都无。。。。镜像串题目有解释:即一个字符串从左到右读出来和从右到左是一样的。比如“E”和“3”就是可以的。题中附表格。其中说明0和O是一样的,所以将0视为非法字符。CharacterReverseCharacterReverseCharacterReverseAAM原创 2015-07-06 22:19:00 · 478 阅读 · 0 评论 -
UVA 10815 Andy's First Dictionary
题目意思比较简单,就是输入一些句子,将句子中的单词全部转化成小写字母,然后找出其中的单词并且按照字典序输出。一看到这个题目,我就想到,用STL里面的map啊!然后就用了。。第一次交WA了。百思不得其解。。。实在想不出来到底什么地方错了,到网上找题解,发现都是用qsort来写的,找了半天也没找到一个map的。然后我没办法了,回去看,然后发现自己的输出里面第一个竟然是空格!!!我以为是输入原因,刚原创 2015-07-10 23:26:58 · 641 阅读 · 0 评论 -
URAL1297Palindrome(最长回文子串 、后缀数组最长公共前缀+RMQ)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1297题目大意:给一个字符串。求出其最长回文子串。思路:思路来自论文例题。首先将字符串倒转以后连接在原字符串的后面,中间添加上一个'$'字符。接下来我们只需要枚举i从0到n-1,对于字符i来说以其为中心的最长回文子串。当回文串为奇数的时候,我们只要比较i和2*n原创 2016-08-26 15:41:49 · 858 阅读 · 0 评论