对Big
Oh的新的认识一个问题,它有很多种算法都能实现。每种算法它的时间、空间复杂度不一样。比如:问题1: 求最大连续子序列和的问题,可以有O(n3)、O(n2)、O(nlogn)和O(n)四种时间复杂度的解法。请看下面的代码:一、O(n3)算法 二、O(n2)算法 三、O(nlogn)算法用分治...
分类:
其他好文 时间:
2014-05-26 19:17:41
阅读次数:
234
月老的难题
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘。
现在,由于一些原因,部分男孩与女孩可能结成幸福的一家,部分可能不会结成幸福的家庭。
现在已知哪些男孩与哪些女孩如果结婚的话,可以结成幸福的家庭,月老准备促成尽可能多的幸福家庭,请你帮他找出最多可能促成的幸福...
分类:
其他好文 时间:
2014-05-26 04:43:20
阅读次数:
230
#include
#include
#include
using namespace std;
const int m=(int)1E8;
string s1,s2;
int f[2][5001]={0},g[2][5001]={0};
void init();
void work();
int my_max(int,int);
int main()
{
freopen("lcs.in","r"...
分类:
其他好文 时间:
2014-05-26 04:07:17
阅读次数:
305
出题:求数组中最长递增子序列的长度(递增子序列的元素可以不相连);分析:解法1:应用DP之前需要确定当前问题是否具有无后效性,也就是每个状态都是对之前状态的一个总结,之后的状态仅会受到前一个状态的影响;对于递增子序列
而言,可以首先确定前面k个元素的最长子序列,然后计算增加一个元素之后的最长子序列。...
分类:
其他好文 时间:
2014-05-25 22:20:16
阅读次数:
339
算法1
用两个for循环定位子序列的上下界,然后再用最内部的一个for循环求出上下界之间的元素和。
时间复杂度:O(N³)。
代码:
int MaxSub(int *a, int n)
{
int sum = 0;
int tmp;
for (int i = 0; i < n; i++)
{
for (int j = i; j <...
分类:
其他好文 时间:
2014-05-25 21:28:44
阅读次数:
243
ACM DP 最大连续子序列 hdu1231...
分类:
其他好文 时间:
2014-05-25 11:06:40
阅读次数:
235
最长公共子序列问题LCS
问题描述:
一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= { x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…,
ik},使得对于所有j=1,2,…,k有 Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,...
分类:
其他好文 时间:
2014-05-25 06:26:52
阅读次数:
229
最长递增子序列
问题:
求一个一维数组中最长递增子序列的长度。
解法1:
很明显用动态规划的算法,选取下面的阶段(这种选法极为常见),可使阶段间的关系具有无后效性。
阶段:在所有以元素k结尾的子数组中,选出其中的最长递增子序列,k=1,2...n。
状态:以元素k结尾的最长递增子序列中只有一个最长的递增子序列。
决策:决定元素k结尾的最长递增子...
分类:
其他好文 时间:
2014-05-25 04:37:56
阅读次数:
193
题目:这个题目里要求最多交易2次。也就是说可以只交易一次,不交易也可以。
分析:将整个交易序列分割成两部分,求出这样的一种分割,使得两部分连续子序列的和相加的结果最大,当然,如果不进行分割,就是求出整个序列的最大连续子序列的和。
那么分割点就可能是任意位置。找出取得最大值的分割点,返回最大值。
int maxProfit(vector &prices) {
const int le...
分类:
其他好文 时间:
2014-05-24 20:54:57
阅读次数:
402
整数划分(三)
时间限制:1000 ms | 内存限制:65535 KB
难度:5
描述
整数划分是一个经典的问题。请写一个程序,完成以下要求。
输入每组输入是两个整数n和k。(1
输出对于输入的 n,k;
第一行: 将n划分成若干正整数之和的划分数。
第二行: 将n划分成k个正整数之和的划分数。
第三行: 将n划分成最大数...
分类:
其他好文 时间:
2014-05-24 18:20:36
阅读次数:
242