hdu4521:http://acm.hdu.edu.cn/showproblem.php?pid=4521题解:给你一个序列,然后让你找一个最长上升子序列,但是这个最长上升子序列的数在原来序列的间隔不少于d。题解:如果没有d的要求就是一个求最长上升子序列。这里用线段树可以来优化。以数的值来建树。维...
分类:
其他好文 时间:
2014-07-19 09:34:12
阅读次数:
283
/*
___________________________________________________________________________________________
author : Grant Yuan
time : 2014.7.18
algorithm : 最长上升子序列求和
—————...
分类:
其他好文 时间:
2014-07-19 08:12:13
阅读次数:
210
题目大意是一个奶牛可以在一些时间区间产奶,每个区间的产奶量已知,每次产完奶都要休息一下,问最大产奶量。dp方程类似最长上升子序列的n2算法,dp[i]表示以第i个区间结尾最多能产生多少奶。则dp[i] = max(dp[j] + e[i].z)。#include #include #include ...
分类:
其他好文 时间:
2014-07-16 19:09:37
阅读次数:
216
71 7 3 5 9 4 8求最长上升子序列的个数#includeusing namespace std;int dp[10001];int a[10001];int main(){ int max; int i,j; int n; while(scanf("%d",&n)!=EOF) { max....
分类:
其他好文 时间:
2014-07-16 18:48:42
阅读次数:
244
这题的考察点 应该有2个一个是对于LIS算法的优化 使用进行二分查找的O(nlogn)算法 而不是 O(n^2)另一个就是 对于题意的理解... 并不是可以很直观地联系到 最长上升子序列的...你可以自己画图 就很直观了.. touch me另外一个很坑的地方 就是 road || ...
分类:
其他好文 时间:
2014-07-16 17:55:22
阅读次数:
182
最长上升子序列中对于数ipt[i],向前遍历,当数ipt[j]小于ipt[i] 则ipt[j]可作为上升序列中ipt[i]的前一个数字
dp[i] = max{ dp[j] + 1 | j
若现在有两个状态a,b 满足dp[a] = dp[b]且 ipt[a]
则对于后面的状态dp[a]更优 因为若ipt[i] > dp[b] 则必然ipt[i] > dp[a],反之若ipt[...
分类:
其他好文 时间:
2014-07-09 09:57:45
阅读次数:
197
最长上升子序列
Time Limit: 3000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
一个数的序列bi,当b1 2 S的时候,我们称这个序列是上升的。对于给定的一个序列(a1,
a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1<=
i1 2 K
你的任务,就是...
分类:
其他好文 时间:
2014-07-03 16:40:35
阅读次数:
222
//最长上升子序列(n^2)
//入口参数:1.数组名称 2.数组长度(从0开始)
int LIS(int a[],int len)
{
int *dp=new int[len];
int ans=1;
dp[0]=1;
for(int i=1;i<len;i++)
{
int m=0;
for(int j=0;jm && a[j]<a...
分类:
其他好文 时间:
2014-06-28 09:19:23
阅读次数:
220
题目#include//最长上升子序列 nlogn//入口参数:数组名+数组长度,类型不限,结构体类型可以通过重载运算符实现//数组下标从1号开始。int bsearch(int a[],int len,int num){ int left=1,right=len; while(left...
分类:
其他好文 时间:
2014-06-26 16:20:12
阅读次数:
236