自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

志当存高远

新博客地址blog.dorastory.com

  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 后缀数组da+dc3

以前一看到字符串的题目就有些畏惧,感觉无从下手,只会个KMP和AC自动机,很多情况下都是力不从心,所以打算学各种高端的算法,来解决这类问题,后缀数组应该是性价比教高的吧,至少很简单,容易理解,算法实现是另一回事,毕竟ACM比赛是可以带模版的,所以它也就显得简单实用了,下面一起看看这个实用的数据结构吧!     首先给定一些定义:     字符串S,s[ i ]表示第i个字符,s[ i , j

2013-05-29 21:14:47 4710 1

原创 hdu 4303 Hourai Jeweled(树型DP+统计答案)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4303 题意:给你一颗树,每个节点有权值,每条边有颜色,问所有满足相邻边颜色不同的路径的权值之和 分析:一开始看成求权值最大的路径,所以就是水题了,不过加个统计就得略想一下子,f[ i ]表示i的所有子节点的连到i 路径和,这里有个限制就是i到子节点的颜色与i到父节点的颜色不同,g[ i ]记录相应的边

2013-05-31 09:22:54 2695 1

原创 spoj 220 Relevant Phrases of Annihilation(n个串的最长公共重复2次子串)

地址:http://www.spoj.com/problems/PHRASES/ 题意:给你n个串,求最长的公共重复子串 分析:跟两个串的最长的公共重复子串差不多,也是将所有串合成一个串,构造后缀数组,然后二分子串长度,在满足条件的区间里,求出n的串的下标的上下界的差值大于等于当前长度,所有串都满足说明存在解,否则无解。。。 代码: /** head files*/ #include #

2013-05-30 17:15:13 2555

原创 poj 1743 Musical Theme(最长不重叠重复子串 后缀数组+二分)

题目:http://poj.org/problem?id=1743 题意:给你一个序列,求序列里长度至少为5的最长不重叠重复子串,这里的重复包括每个元素加减相同的值 分析:对于区间加减可以通过将相邻的元素的差组成新的序列,答案就变成求至少长度4的最长不重叠重复子串,并且至少间隔1的距离,然后就可以用后缀数组来做了,然后二分子串的长度L,找到height数组大于等于这个长度L的区间,求区间对应原

2013-05-30 16:12:04 2466

原创 poj 3294 Life Forms(后缀数组+二分)

题目:http://poj.org/problem?id=3294 题意:给你n给字符串,求在一半以上的串里重复出现的最长子串 分析:将所有字符串合成一个串,字符串自己用不同的字符标记间隔,然后构造新字符串的后缀数组,很容易发现,相同子串一定在后缀数组里相邻,只要判断一个区间里的子串里是否包括了超过一半的不同串,我们只要二分子串的长度,就能得到一些区间,height数组大小都大于等于该长度,这

2013-05-30 13:28:14 2294

原创 POJ 3261 Milk Patterns(后缀数组)

题目:http://poj.org/problem?id=3261 题意:给你一个序列,求序列里重复出现至少K次的最长子串 分析:这题如果学过后缀数组的话,那就是模版题了,直接构造一个后缀数组,然后枚举i,询问[ i, i+k-1 ] 的最长公共前缀就行,i表示排在第i位的后缀 代码: /** head files*/ #include #include #include #incl

2013-05-30 10:33:06 2283

原创 vijos 1069 新年趣事之红包(区间DP)

题目:https://vijos.org/p/1069 题意:给你一个凸包,问遍历所有点一遍的最短路径 分析:由于图形是一个凸包,所以肯定是选一个点,然后从两端不断拓展出去,假设已经拓展[i , i+len ]这几个点,且f[ i ][ len ][0]为遍历这些点,且终点为i的最短路,f[ i ] [len] [1]为遍历这些点,且终点为i+len的最短路,那么有

2013-05-18 20:43:56 2428

原创 hdu 4546 优先队列 数列组合和第m小

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4546 题意:给你n个数,问这n个数的组合的和,第m小是多少 分析:很明显的,要给初始序列排序(我写的时候居然忘记排序了,看来下次得把步骤写下来= =),然后发挥想像力,你会发现这其中有一定规律,我们可以假设有这样的元素, struct  data {     int start, i; }

2013-05-18 09:23:03 3117 6

原创 Manacher算法——求最长回文子串

Manacher算法是用来求解一个给定字符串的最长回文子串,回文就是将字符串翻转后,与原来一样。这个算法通过添加字符,巧妙的将回文长度为偶数的情况转化成奇数,简化了问题的步骤,并且利用回文的性质,将去除了冗余的比较,从而将复查度降到O(len),能够求出以每个字符为中心的最长回文,从而求出最长的回文子串。 现在,简述一下算法的过程: 在相邻的两个字符之间(包括首尾)添加特殊字符(也就是

2013-05-16 15:50:53 2158

原创 vijos 1014 旅行商简化版(多路DP)

地址:https://vijos.org/p/1014 题意:旅行商问题,不过要求只能单向走,就是有n个地方,要求从西往东,到最东面的地方,在从东往西返回,经过每个点一次,求最短路径 分析:由于有了方向的限制,这题不再是NP难题,我们可以假设有两个人一起从西往东走,走过的点不能重复,这样就有f[ i ][ j ]表示第一个人走到i,第二个人走到j 的最短路径,要求i 最后,预处理f[ 0 ]

2013-05-07 10:17:08 2416

原创 vijos 1002 过河(一类压缩长度的DP)

地址:https://vijos.org/p/1002 题意:一条直线上有m个点,青蛙一次能跳的长度为s~t,每个点的坐标范围1~10^9,1 分析:这题一下子就能想到简单的DP,f[ i ] =min{ f[ j +k ] }+w  (s<=k<=t, w为i坐标是否有石子),这样的复杂度是O(L*t)的,主要时间都在L上,由于石头数m比较少,我们应该会发现,实际上有许多石头相隔很远,这之间

2013-05-06 14:42:50 1541

JSP网页播放器 (调用WMP)

用jsp写的一个网页播放器,用到servlet,javabean,jsp,javascript,数据库为mysql

2012-06-14

线性规划与网络流24题

搞了好久终于搞定,线性规划与网络流24题的大部分题目,不过机器人路径问题没解决,还有第22题貌似数据的问题。。。话说最后一题贴错代码了,改不回来啊~~~

2011-08-06

空空如也

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

TA关注的人

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