自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mtxxxx的blog

走一步,再走一步

  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 manacher算法求最长回文子串(hdu3068)

//第一次学到这种算法,算法分析和代码实现参考了博客: http://blog.csdn.net/xingyeyongheng/article/details/9310555 很详细#include #include #include using namespace std; const int maxn=110005; char str[maxn],s[maxn*2]; int p[max

2016-08-28 20:46:43 357

原创 后缀数组(三)求给定字符串不相同的子串个数(hdu 4622 区间询问)

如果字符串是给定的,不询问区间,按照论文里写的,由于每个子串一定是某个后缀的前缀,相当于就是求后缀之间不相同前缀的个数。每次新加进来一个后缀,就是加上(n-sa[i]+1)个新前缀,但是其中有height[i]个前面已经算过了,减掉即可。 这题询问的是一个区间[l,r],一开始的思路是,对于每一个sa[i]在l到r之间的后缀,按前面那种方法计算,同时注意考虑一下lcp的右边超过了r的情况,过了样

2016-08-28 16:24:12 1554

原创 后缀数组(二)利用height对sa数组分组的做法(poj 1743 & poj 3261 )

poj 1743 给定一个字符串,求最长重复子串,且这两个子串不重叠 二分答案,判断答案k是否可行时,把后缀数组分成若干组,每组中重复子串的长度都大于或等于k(即height大于等于k),如果本组中sa的最大最小值之差大于k就满足不重复,即这个k可行 #include #include #include #include using namespace std; const int m

2016-08-28 08:02:33 681

原创 后缀数组(一)(模板题poj2774)

#include #include #include using namespace std; const int maxn=200010; char ss[maxn]; int sa[maxn],t[maxn],t2[maxn],c[maxn],n,s[maxn]; int Rank[maxn],height[maxn]; void get_sa(int m) { int i,*x

2016-08-27 08:10:53 649

原创 Codeforces #332 Div2 D

http://codeforces.com/contest/599/problem/D 题意: 假设有个n*m的矩形,那么它含有的正方形个数可以这样计算,先算边长为1的,有n*m个,接着算边长为2的....例如3*5的矩形中含26个正方形,即15+8+3=26.现在输入一个数x,表示正方形的个数,求有多少个矩形满足含有n个正方形,并输出这些矩形的长和宽,按照长递增输出. 可以根据题意计算出当n

2016-08-23 19:47:00 275

原创 Codeforces #331 Div2 D

D:http://codeforces.com/contest/596/problem/D 题意:第一行输入n,h,p,分别表示原来有n棵树,它们的高度为h,砍掉它们之后,向左倒的概率为p,向右倒的概率为(1-p)。第二行,输入每棵树所在的坐标。每次砍树的时候,要么砍最左边的,要么砍最右边的,砍左或右的概率均为0.5.如果只剩下一棵树,那么一定会砍掉这棵树。 问  :  这些树全部被砍掉之后的覆

2016-08-23 19:33:24 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除