求最长不下降序列个数(jdoj-1946) 题目大意:给你一个序列,求所有最长不下降序列的个数。 注释:n(总序列长度)<10000。 想法:维护两个数组,分别表示包含这个数的最长子序列长度和达到这个长度的方案数,最后统计答案,跑两次dp即可。 最后,附上丑陋的代码....... 小结:错误。 两次 ...
分类:
其他好文 时间:
2017-11-25 13:17:20
阅读次数:
182
经典的最长子序列问题,最近编程训练遇到此题苦无思路,在网上找到比较规范的解答,细思两天后还是觉得有点问题,现在整理总结如下: 参照 https://www.cnblogs.com/hapjin/p/5597658.html 1. 问题描述: 给定一个序列,求解它的最长 递增 子序列 的长度。比如: ...
分类:
其他好文 时间:
2017-11-16 14:27:00
阅读次数:
173
实在愚钝,虽然是以前看过的算法,今天也是折腾了一天才稍微弄懂了一些。特此记下笔记 第一次遇到这个问题的场景是猴子摘桃问题,原题如下: 小猴子下山,沿着下山的路有一排桃树,每棵树都结了一些桃子。小猴子想摘桃子,但是有一些条件需要遵守,小猴子只能沿着下山的方向走, 不能回头,每颗树最多摘一个,而且一旦摘 ...
分类:
其他好文 时间:
2017-10-30 22:20:25
阅读次数:
317
一、题目 给定一个只包含0和1的数组,找到其中包含相同0的个数和1的个数的最长子序,输出子序列的长度,要求在o(n)时间内完成。 二、思路 这个题目,看起来比较简单,一些同学可能认为题目的描述符合动态规划的特征,然后就开始用动态规划解,努力找状态转移方程。这些同学的感觉,是很正确的。但,找状态转移方 ...
分类:
其他好文 时间:
2017-10-24 13:06:28
阅读次数:
95
1 #include<iostream> 2 #include<cstring> 3 #include<string> 4 #include<cstdio> 5 #include<vector> 6 #include<cmath> 7 #include<stack> 8 #include<set> ...
分类:
其他好文 时间:
2017-10-15 21:12:25
阅读次数:
203
题目描述:从a,b俩数组中找出共有的最长子序列,如a={1,2,3,5,6,4,8},b={1,1,2,5,5,3,5,7,6,},其最长公共子序列为{1,2,3,5,6}. 解决方法:动态规划,寻找子问题,可以发现,当前的最长子序列一定等于上一次的加一,否则,就等于上一次的。 即:c[i][j]= ...
分类:
其他好文 时间:
2017-09-22 22:41:27
阅读次数:
269
按位DP f[i]表示第i位为1的最长子序列 #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<algorithm> #define ll long long using namespac ...
分类:
其他好文 时间:
2017-08-29 18:02:24
阅读次数:
152
使用矩阵来记录两个子串之间各个字符之间的对应关系。 最长子串:矩阵中数字最大的就是最长子串的长度。若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1 最长子序列:若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1,若不同,则max(c[i][j-1],c[ ...
分类:
编程语言 时间:
2017-08-17 18:34:58
阅读次数:
241
个人心得:今天就做了这些区间DP,这一题开始想用最长子序列那些套路的,后面发现不满足无后效性的问题,即(,)的配对 对结果有一定的影响,后面想着就用上一题的思想就慢慢的从小一步一步递增,后面想着越来越大时很多重复,应该要进行分割, 后面想想又不对,就去看题解了,没想到就是分割,还是动手能力太差,还有 ...
分类:
其他好文 时间:
2017-08-16 11:32:46
阅读次数:
163
加入收藏 | 分享这个卡塔 编写一个称为LCS该函数的函数可以接受两个序列,并返回传递给序列的最长子序列。 子 子序列与子字符串不同。子序列的术语不需要是原始序列的连续项。 示例子序列 “abc”=“a”,“b”,“c”,“ab”,“ac”,“bc” LCS示例 LCS( "abcdef" , "a ...
分类:
其他好文 时间:
2017-08-01 19:27:19
阅读次数:
179