码迷,mamicode.com
首页 >  
搜索关键字:lis    ( 17068个结果
UVa 497 - Strategic Defense Initiative
题目:最大上升子序列,输出一组解。 分析:dp,LIS。数据较小 O(n^2)算法即可。            设以第i个数字作为最大上升子序列中的最后一个数的长度为 f(i),则有转移方程:             f(i)= max(f(j)) { 0=            用一个数组记录前驱,递归输出即可。 说明:注意输出格式有点纠结。 #include #include ...
分类:其他好文   时间:2014-08-24 23:55:53    阅读次数:417
TYVJ1113
其实就是最长上升子序列。只要把普通的LIS中的“>”改为另外一种这里需要的判断的方式即可。dp[i]表示包含i在内的从1到i的LIS 状态方程, dp[i] = max(dp[i],dp[j]+1)(if(“i>j”));边界dp[i] = 1;最后还需要扫一遍dp[]取出其中的最大值,(为什么d....
分类:其他好文   时间:2014-08-24 23:28:53    阅读次数:270
UVA - 10599Robots(II)(LIS)
题目: UVA - 10599Robots(II)(LIS) 题目大意:一个N * M 的矩阵,上面有些格子上有垃圾,现在要求一个机器人从1,1的格子出发,往右或是往下走最终到达N * M各格子,沿途要收集最多的垃圾。现在将垃圾编号,要求输出最多能清理的垃圾并且输出这样的清理路线有多少条,输出其中字典序最小的那一条。 解题思路:一开始还以为是简单的dp,结果输出发现路径多了好多...
分类:其他好文   时间:2014-08-22 13:03:18    阅读次数:211
UVA - 111History Grading(LIS)
题目:UVA - 111History Grading(LIS) 题目大意:找最长的LIS。但是题意讲的实在是有问题。   例如:3 1 2 4 9 5 10 6 8 7,意思是第一个历史事件的时间是排在第三位,第二个历史事件是在第1位,那么首先先要将这个事件按照时间顺序重新排序。新的排列顺序:2 3 1 4 6 8 10 9 5 7。 解题思路:LIS. 代码...
分类:其他好文   时间:2014-08-22 13:02:08    阅读次数:236
UVA - 531Compromise(LIS)
题目:UVA - 531Compromise(LIS) 题目大意:给出两段话,找出里面最长的公共单词的子序列。并且输出任意一个子序列。 解题思路:LIS。 代码: #include #include const int N = 105; const int M = 35; char w1[N][M]; char w2[N][M]; int f[N][N]...
分类:其他好文   时间:2014-08-22 13:00:28    阅读次数:195
UVA 437 The Tower of Babylon
题意:给n种立体块,每种有无限个,上面的块长宽必须小于下面的块,问最多可以搭建多高 思路:输入的时候小小处理下,把每个块各条边当高的情况存入结构体中,按升序排序,然后dp,比较求出最大值。。看好多代码都说什么最长上升子序列,感觉没有用到额,LIS的标记数组是用来存储相应长度的最小值的,没看出来哪里用上了额。。。数据范围小,直接就是dp了=。= #include #include #...
分类:其他好文   时间:2014-08-20 22:47:03    阅读次数:253
编程之美——longest incremental sequence(LIS)
解法一:通过遍历得到(0:i)的LIS,时间复杂度O(N^2);具体思路于代码,如下: 1 #include 2 #include 3 using namespace std; 4 5 int longSub(int arr[],int n); 6 7 int main() 8 { 9 ...
分类:其他好文   时间:2014-08-20 15:44:12    阅读次数:147
LIS问题---HDU1025 Constructing Roads In JGShining's Kingdom
发现这个说的比较通俗:假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B,然后令 i = 1 to 9 逐个考察这个序列。此外,我们用一个变量Len来记录现在最长算到多少了首先,把d[1]有序地放到B里,令...
分类:其他好文   时间:2014-08-15 20:50:19    阅读次数:364
POJ 3671 (n log n,LIS)
POJ 3671 题意:要使序列形成非递减的序列,最少改变几个数; 思路:ans=n-lis(); #include #include #include #include #include #include using namespace std; int n; int cow[30010]; vector len; //len[k]=t,表示k长度的序列的最小...
分类:其他好文   时间:2014-08-15 17:59:59    阅读次数:215
HDU 1025 Constructing Roads In JGShining's Kingdom LIS题解
本题是LIS题解。主要是理解他的题意。他的题意都好像比较隐晦,比如每个poor city和rich city一定是需要对应起来的,比如poor city和rich city并不是按顺序给出的。 其实是可以把数列按照poor city排序,然后求rich city城市号的最大递增子序列。 不过这里不用排序,利用hash的思想直接对应起来就可以了。 然后就是本题是卡DP的O(n*n)的解法的,这...
分类:其他好文   时间:2014-08-15 17:55:49    阅读次数:211
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!