题目大意给定一列数,从中选择两个不相交的连续子段,求这两个连续子段和的最大值。题目分析典型的M子段和的问题,使用动态规划的方法来解决。f[i][j] 表示将A[1...i] 划分为j个不相交连续子串,且A[j]属于第i个子串,所能达到的最大子串和g[i][j] 表示将A[1...j]划分为i个不相交...
分类:
其他好文 时间:
2015-09-30 11:11:19
阅读次数:
209
介绍最长公共子串和最长公共子序列的实现,并完成输出多组结果的要求。
分类:
其他好文 时间:
2015-08-29 16:59:33
阅读次数:
161
DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the ma...
分类:
其他好文 时间:
2015-08-10 21:53:03
阅读次数:
135
首先第一题戳我穿越;http://acm.hdu.edu.cn/showproblem.php?pid=1686题目大意好理解,每组输入一个子串和一个母串,问在母串中有多少个子串?文明人不要暴力,因为宽度会超时,除去暴力后这就是赤果果的KMPKMP的重点在于在子串中建立一个匹配表,记录 到每一位的 ...
分类:
其他好文 时间:
2015-07-30 20:48:18
阅读次数:
122
Max Sum Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to cal....
分类:
其他好文 时间:
2015-07-28 12:55:12
阅读次数:
135
strStr()函数的用途是在一个字符串S中寻找某个字串P第一次出现的位置,并返回其下标,找不到时返回-1。最简单的办法就是找出S所有的子串和P进行比较,然而这个方法比较低效。假设我们从S的下标0和P的下标0开始对每个字符进行比较,如果相等则下标增加,比较后面的字符。如果两者一直相等直到P的下标达到最大值,则表示在S中找到了P,并且第一次出现的位置为0,返回0,但如果在中间某个位置两个字符不相等时...
分类:
编程语言 时间:
2015-07-26 17:27:26
阅读次数:
136
POJ 1050
题意:给一个矩阵,求出元素和最大的子矩阵。
思路:
之前曾写过最大子串和的一篇文章,这次由一维上升到了二维。
我们可以通过累加每行相同列或每列相同行的值,将其储存在一个数组中,便可以将二维降至一维。
时间复杂度为O(n^3)。
参考:
累加每一行相同列的做法(java实现)
累加每一列相同行的做法(C++实现)
code:
/*
*Author : F...
分类:
其他好文 时间:
2015-07-23 17:57:32
阅读次数:
447
1.声明一个C++字符串2.字符串操作函数2.1 C++字符串和C字符串的转换2.2 大小和容量函数2.3元素存取2.4比较函数2.5 更改内容 插入(insert)、删除(erase)、替换(replace)、增加字符2.6提取子串和字符串连接2.7输入输出操作2.8搜索与查找C++ string...
分类:
编程语言 时间:
2015-07-20 21:03:25
阅读次数:
163
http://acm.hdu.edu.cn/showproblem.php?pid=3652大致题意:"B-number"即一个整数含有子串"13"且被13整除。求1-n之间这种数的个数。思路:有两个限制条件:含有子串“13”和能被13整除。那么设dp[site][mod][flag]。表示到第si...
分类:
其他好文 时间:
2015-07-19 14:47:22
阅读次数:
92
??
题意:给定n个数,求两段连续不重叠子段的最大和。
思路很简单,把原串划为两段,求两段的连续最大子串和之和,这里要先预处理一下,用lmax数组表示1到i的最大连续子串和,用rmax数组表示n到i的最大连续子串和,这样将时间复杂度降为O(n)。
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-07-17 09:59:18
阅读次数:
130