最长公共连续子序列Time Limit:1000msMemory Limit:65536KB64-bit integer IO format:%lld Java class name:Main给你两个序列S1和S2,长度分别是L1,L2 (1 2 #include 3 #include 4 #...
分类:
其他好文 时间:
2014-07-16 21:54:37
阅读次数:
192
题目很好很有意思。告诉你n个序列中,任意一个连续子序列的和与0相比较的结果。构造一个满足条件的序列。对于从x->y这一段的和,如果大于0,那么sum[x]>sum[y-1],显然我们可以得到每一个sum的大小关系。由于这个满足条件的sum关系已经考虑了所有的源系列的大小关系,所以只要我们生成了一个满...
分类:
其他好文 时间:
2014-07-14 18:00:24
阅读次数:
193
题目链接:http://acdream.info/problem?pid=1019
题意:两种操作,第一种将字符串某个位置的字符换为另一个字符;第二种查询某个连续子序列是否是回文串;
解法:有两种hash的办法,所以写了两种解法;首先hash是x1 * p^1+ x2*p^2 +x3*p^3...可以用树状数组维护前缀和,维护两个串,一个是正串,另一个是反串用于比较。比较时候乘以相应的p倍数判...
分类:
其他好文 时间:
2014-06-24 19:25:19
阅读次数:
252
最大连续子序列(HDU1003,1231)
最大递增子序列和,sum[i]=max(sum[j])+a[i],j
最长公共子序列,LCS经典算法(HDU1159)。
题解:
实际上,我没看出hdu1003和1231的本质差别,形式上的差别就是记载的东西不一样,一个是记载下标,一个是记载元素。基本就是那么回事吧。很多算法书在讨论时效都会拿这个例子来说明,让大家看到算法的力量,从一个弱渣算法到...
分类:
其他好文 时间:
2014-06-03 04:19:10
阅读次数:
279
对Big
Oh的新的认识一个问题,它有很多种算法都能实现。每种算法它的时间、空间复杂度不一样。比如:问题1: 求最大连续子序列和的问题,可以有O(n3)、O(n2)、O(nlogn)和O(n)四种时间复杂度的解法。请看下面的代码:一、O(n3)算法 二、O(n2)算法 三、O(nlogn)算法用分治...
分类:
其他好文 时间:
2014-05-26 19:17:41
阅读次数:
234
ACM DP 最大连续子序列 hdu1231...
分类:
其他好文 时间:
2014-05-25 11:06:40
阅读次数:
235
题目:这个题目里要求最多交易2次。也就是说可以只交易一次,不交易也可以。
分析:将整个交易序列分割成两部分,求出这样的一种分割,使得两部分连续子序列的和相加的结果最大,当然,如果不进行分割,就是求出整个序列的最大连续子序列的和。
那么分割点就可能是任意位置。找出取得最大值的分割点,返回最大值。
int maxProfit(vector &prices) {
const int le...
分类:
其他好文 时间:
2014-05-24 20:54:57
阅读次数:
402
目录最大连续序列和不连续序列的最大和1.最大连续序列和是指所有连续子序列元素和最大的那个。#include#includeusing
namespace std;int main(){ freopen("in.txt","r",stdin); int n;
while(cin>>n) { int a...
分类:
其他好文 时间:
2014-05-22 11:49:54
阅读次数:
273
题意:最大连续子序列和,在一个数组中找到和最大的连续子数组
思路:dp, 对于第i个数,有两种选择:把它加入在子数组里,不加入子数组(子数组到此结束)
加不加入子数组,要比较它加入前后子数组的总和是变大了还是变小了,如果变大则加入,变小则不加入
所以,我们需要记录以i-1结尾的子数组的总和,最后的结果在这些总和中取最大的那个
f[i] = max(f[i-1]+a[i],f[i-1]);
max({f[i]})
实现时用两个变量,一个保存f[i-1],一个保存目前为止最大的f[i]
复杂度:时间O(n),空...
分类:
其他好文 时间:
2014-05-14 21:53:14
阅读次数:
250
问题描述
给定(可能是负的)整数序列A1, A2,...,AN, 寻找(并标识)使Sum(Ak)(k >=i, k <= j)的值最大的序列。如果所有的整数都是负的,那么连续子序列的最大和是零。...
分类:
其他好文 时间:
2014-05-08 01:49:14
阅读次数:
273