摘要: 本题大意:给定一个长度为n的序列a,让你输出这个序列子序列中元素和最大的最大上升子序列。 本题思路:一开始肯定可以想到用LIS实现,我们用LIS实现的时候可以发现这个问题并不满足LIS问题的最优子结构,即两者的子问题肯定是不相同的...比如5 2 2 2 1 2 3,在这五个数中,如果按照LIS你会 阅读全文
posted @ 2019-03-29 20:45 Cruel_King 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 本题大意:给出n个长方体,每种长方体不限量,让你求出如何摆放长方体使得最后得到的总高最大,摆设要求为,底层的长严格大于下层的长,底层的宽严格大于下层的宽。 本题思路:一开始没有啥思路...首先应该想到如果数组内的长宽等都是乱序的话会很影响计算的效率,所以我们先进行排序,对于每种长方体,我们将其三种摆 阅读全文
posted @ 2019-03-28 21:22 Cruel_King 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 这道题打破了我常规的做题思路,因为这是我刚开始训练DP,感觉这道题目好晕眼呀,emm其实就是感觉自己是真的菜...... 为什么说打破了我的做题思路呢,因为我平时看题解都是在已经AC或者完全不懂的情况下看了题解用的知识点,然后再自学知识点完成题目,结果这次.......我是真的鸡... 好了言归正传 阅读全文
posted @ 2019-03-28 01:38 Cruel_King 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 本题大意:给定多个矩形的长和宽,让你判断最多能有几个矩形可以嵌套在一起,嵌套的条件为长和宽分别都小于另一个矩形的长和宽。 本题思路:其实这道题和之前做过的一道模版题数字三角形很相似,大体思路都一致,这道题是很经典的DAG上的最长路问题,用dp[ i ]表示以i为出发点的最长路的长度,因为每一步都只能 阅读全文
posted @ 2019-03-26 12:40 Cruel_King 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 本题大意:给出两个字符串,让你求出最长公共子序列的长度并输出。 本题思路:本题是经典的DP问题,由于是两个字符串,那么我们就用一个二维数组来进行区分,用dp[ i ][ j ]来表示在s1和s2中分别以i, j 结尾的子串中最长公共子序列的长度,很容易得出dp[i + 1] [j + 1] 的值只与 阅读全文
posted @ 2019-03-23 18:04 Cruel_King 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 本题大意:给出n和n个整数,让你求出其中不上升子序列的个数。 本题思路:用dp[ i ]保存第i个防御系统攻击的最低的导弹,遍历数组,遇到更低的导弹则更新最小值,否则新加一个系统用来防御,并且更新最小值。 参考代码: 阅读全文
posted @ 2019-03-23 17:21 Cruel_King 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 最近在学习DP,心里就一个感觉,难,这几天上课比较忙,就利用一些空闲时间看了n遍算法导论和n遍白书上面有关Dp的章节,现在感觉自己......萌萌哒...... 回归正题,其实收获还是有一些的,今天准备开始做一些动态规划的入门级的水题... 先来让dsy大佬带领大家认识一下dp...脸黑.jpg D 阅读全文
posted @ 2019-03-23 16:31 Cruel_King 阅读(210) 评论(0) 推荐(1) 编辑
摘要: 最近一直在学dp,但是感觉进度明显慢了很多,希望自己可以加一把劲,不要总是拖延了... 在LIS的优化中我遇到了二分查找的问题,之前也知道lower_bound和upper_bound两个函数,但是没有做一个具体的总结,在下面我会总结这两个函数的用法,也会给出这两个函数的实现代码,代码是参考c ++ 阅读全文
posted @ 2019-03-23 14:14 Cruel_King 阅读(3448) 评论(0) 推荐(1) 编辑
摘要: 最近学到了dp,一开始以为思维的体操是时候绽放了.... 傲娇.jpg ....但是.... 下面回归正题: 单调队列:单调队列分为两种,即单调递增和单调递减队列,简单的理解就是基本队列赋予严格的递增或递减的单调性即可。 单调队列一般用于优化,一般有如下用途。 下面给一道单调队列的模版题: 题目链接 阅读全文
posted @ 2019-03-21 20:43 Cruel_King 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 本文主要内容为基础DP,内容来源为《算法导论》,总结不易,转载请注明出处。 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问题具有相同的公共子子问题,在这种情况下分治算法会做许多不必要的工作,它会反复求解那些子子问题使得程序边的缓慢。而 阅读全文
posted @ 2019-03-18 11:48 Cruel_King 阅读(320) 评论(0) 推荐(0) 编辑