最开始的时候思路就想错了,就不说错误的思路了。因为这n个数的总和是一定的,所以在取数的时候不是让自己尽可能拿的最多,而是让对方尽量取得最少。记忆化搜索:d(i, j)表示原序列中第i个元素到第j个元素构成的子序列,先手取数能够得到的最大值。sum(i, j) 表示从第i个元素到第j个元素的和因为要让...
分类:
其他好文 时间:
2014-08-13 12:47:56
阅读次数:
247
典型的DP题目,增加一个额外要求,输出子序列的开始和结尾的数值。
增加一个记录方法,nothing special。
记录最终ans的时候,同时记录开始和结尾下标;
更新当前最大值sum的时候,更新开始节点。
const int MAX_N = 10001;
long long arr[MAX_N];
int N, sta, end;
long long getMaxSubs()
{
...
分类:
其他好文 时间:
2014-08-12 22:04:14
阅读次数:
320
题目大意:给你一个0/1/2序列Ai,每个值Ai有一个权值Pi。如果两个值的权值Pi和Pj满足Pi≥2Pj,那么Ai就会把Aj吔掉,也就是说Ai,Aj不能共存。称Ai的一个子序列的特征三元组为(Sum0,Sum1,Sum2),其中Sump为子序列中的Ai=p的个数。当然这里要求所有值可以共存。求:A...
分类:
其他好文 时间:
2014-08-12 21:57:35
阅读次数:
551
题意:给你一个数n,接下来给你一个矩形体的3边长(即随便你怎么放它,它的高度有可能是3边中的一条边),如今要你求出这n个矩形体能堆成一座塔的最高高度(塔就是面积从店面開始向上严格递增)思路:动规里的最长子序列的变形,结合了贪心的思想。首先我们须要对你所用的高进行排序,排序之后找出最严格递减的面积就能...
分类:
其他好文 时间:
2014-08-12 21:20:44
阅读次数:
175
1 //Accepted 208 KB 0 ms 2 //最长公共上升子序列+输出 3 //dp 4 //输出时用的递归输出,注意条件判断 5 #include 6 #include 7 #include 8 using namespace std; 9 const int im...
分类:
其他好文 时间:
2014-08-12 13:16:04
阅读次数:
201
作为新人,之前对C,C++了解的比较少,关于算法方面更是一窍不通,但最近却痴迷上了算法,哪怕是前辈们不屑一顾的东东,我弄明白了后都会欣喜若狂!今天将遇到的问题和java实现贴出来和同为新人的博友分享,老鸟可以可以直接关网页了。定义: 子序列:一个给定序列的子序列是再该序列中删去若干元素后得到的序列....
分类:
其他好文 时间:
2014-08-12 12:39:14
阅读次数:
199
给出两个由数字和字母组成的非空字符串S,T,求:1)S与T的最长公共子序列的长度。2)S与T的本质不同的非空公共子序列的个数。3)S与T的各种长度的本质不同的非空公共子序列的个数。思考过程:考场上,果断只会第一问,但是听完题解后,发现事实上他们的思想和第一问是一致的。(此题解借鉴讲题解人)首先考虑第...
分类:
其他好文 时间:
2014-08-12 00:01:53
阅读次数:
473
假设有如下整数数组 -10 5 0 8 -1 10 -10 100 -1 求其最大的子序列和。从该数组我们可以知道其子序列和最大的序列为5 0 8 -1
10 -10 100且等于112。(为方便起见,如果数组全是负数则最大和为0)...
分类:
其他好文 时间:
2014-08-11 18:04:02
阅读次数:
243
POJ 2796 Feel Good题意:给出一个长度为n(n<100000)的序列,求出一个子序列,使得这个序列中的最小值乘以这个序列的和的值最大。思路:枚举每一个点,然后算出以这个点为最小值的区间能向左向右扩展到哪里,然后选择最优的就行。SOJ3085: windy's cake V题意:和PO...
分类:
其他好文 时间:
2014-08-11 17:35:32
阅读次数:
578
~~~~
题意就是找m组序列的最长连续公共子序列。
原来可以直接枚举。
从大到小枚举第一条序列长度的子序列,看下面m-1组序列是否有,找到的第一个必然是最优的(也是一个优化吧);
题目链接:http://poj.org/problem?id=3080
~~~~
#include
#include
#include
#include
using namespace std;
const...
分类:
其他好文 时间:
2014-08-11 12:06:52
阅读次数:
221