摘要:
[关键字]:STL中map的应用[题目大意]:因为是两道题就不一一写了,自己看吧都很水。//================================================[代码]:因为很水而且只是为了练习一下map所以没有分析直接上代码了POJ2491#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<string>#include<map>using n 阅读全文
posted @ 2012-03-29 22:14
procedure2012
阅读(170)
评论(0)
推荐(0)
摘要:
[关键字]:后缀数组 字符串[题目大意]:给定n 个字符串,求出现或反转后出现在每个字符串中的最长子串。//=========================================================================[分析]:和前几道题一样的做法,先见字符串和它反转后的串连在一起并用不同的字分割(小于原串的任意字符且不相同)最后加上一个最小的字符结束,再求后缀数组,二分答案对height数组分组判定是否有至少一组后缀包含所有字串。[代码]:View Code #include<iostream>#include<cstdio>#in 阅读全文
posted @ 2012-03-29 22:10
procedure2012
阅读(343)
评论(0)
推荐(0)
摘要:
[关键字]:后缀数组 字符串[题目大意]:给定n 个字符串,求在每个字符串中至少出现两次且不重叠的最长子串。//======================================================================[分析]:做法和POJ3294大同小异,也是先将n 个字符串连起来,中间用不相同的且没有出现在字符串中的字符(且小于它们)隔开,最后加上一个最小的数求后缀数组。然后二分答案,再将后缀分组。判断的时候,要看是否有一组后缀在每个原来的字符串中至少出现两次,并且在每个原来的字符串中,后缀的起始位置的最大值与最小值之差是否不小于当前答案(判断能否做到不重 阅读全文
posted @ 2012-03-29 21:57
procedure2012
阅读(334)
评论(0)
推荐(0)
摘要:
[关键字]:后缀数组 字符串[题目大意]:给定n 个字符串,求出现在不小于k 个字符串中的最长子串。//======================================================================[分析]:先将所有字符利用不同且小于所有原字符串中的字符的字符分开,但最后一个字符后面要加上一个小于所有字符的字符。然后二分答案并对height数组进行分组,判断每组后缀数否分在了k个字符串中。输出时就把分在k个字符串中的后缀组输出。[代码]:View Code #include<iostream>#include<cstdio> 阅读全文
posted @ 2012-03-29 21:37
procedure2012
阅读(1557)
评论(0)
推荐(0)
摘要:
[关键字]:后缀数组 字符串[题目大意]:给定两个字符串A 和B,求最长公共子串。//==============================================================================[分析]:求两个字符串的最长公共子串实际上就是求两个字符串的两个后缀的最长公共前缀。所以把两个字符串连起来中间用一个没出现的字符(小于任何一个原字符串中的字符)连起来,最后再加上一个字符(小于任何一个字符)。然后求这个新串中的最长公共前缀,依次枚举每个i求出符合sa[i-1]在一串,sa[i]在二串的所有height的最大值。[代码]:View Code 阅读全文
posted @ 2012-03-29 18:59
procedure2012
阅读(282)
评论(0)
推荐(0)