算法题 - 动态规划
动态规划、最长公共子序列LCS、最长上升子序列LIS、机器人走路
小猪快点跑
这个作者很懒,什么都没留下…
展开
-
数据结构:树状dp
一、派对的最大快乐值 1、题目描述 整个公司的人员结构可以看作是一棵标准的多叉树。树的头节点是公司唯一的老板,除老板外,每个员工都有唯一的直接上级,叶节点是没有任何下属的基层员工,除基层员工外,每个员工都有一个或多个直接下级,另外每个员工都有一个快乐值。 这个公司现在要办party,你可以决定哪些员工来,哪些员工不来。但是要遵循如下的原则: 1.如果某个员工来了,那么这个员工的所有直接下...原创 2019-09-14 00:10:27 · 352 阅读 · 0 评论 -
背包问题-敲代码:lintcode-669-换最少的硬币(完全背包变种)
1、Lintcode 669.换硬币 (1)题目描述 给出不同面额的硬币以及一个总金额。写一个方法来计算给出的总金额可以换取的最少的硬币数量。如果已有硬币的任意组合均无法与总金额面额相等,那么返回-1。你可以假设每种硬币均有无数个。 样例1 输入: [1, 2, 5] 11 输出: 3 解释: 11 = 5 + 5 + 1 样例2 输入: [2] 3 输出:...原创 2019-08-07 16:51:18 · 431 阅读 · 0 评论 -
背包问题-敲代码:依赖背包(01背包+分组背包)、金明的预算方案
1、P1064 金明的预算方案 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过 N 元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 ...原创 2019-08-06 00:22:58 · 391 阅读 · 0 评论 -
背包问题-敲代码:01背包、完全背包、多重背包、混合背包、二维费用、分组背包、恰好背包
1、01背包 物品要么放,要么不放,即每种物品最多可以放一个,求最大收益。 /* 输入: n 物品个数 m 背包容量 w[0] v[0] 重量,价值 w[1] v[1] 重量,价值 * w[n-1] v[n-1] 重量,价值 输出: dp[m] 最大价值 */ /* 输入1...原创 2019-08-04 23:20:23 · 687 阅读 · 0 评论 -
二维dp:最长公共子序列、最小调整代价
一、最长公共子序列 二、最小调整代价 1、题目描述 给定两个字符串,已知可以使用三种方式进行变换 1. 插入一个字符 2. 删除一个字符 3. 更改一个字符 请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2 输入描述: 输入两个字符串,字符串的长度<=1000 输出描述: 最小变换次数 输入 hello hel...原创 2019-09-09 21:56:45 · 186 阅读 · 0 评论 -
动态规划(一)——最长公共子序列LCS
一、最长公共子序列 两个序列中最长的公共子序列,子序列在两个序列中都是有序排列的。 string str1 = "abcaef"; string str2 = "abcdf"; string LCS ="abcf"; //最长公共子序列 二、动态规划解决LCS问题 int len1 = str1.size(); int len2 = str2.size()...原创 2019-04-13 23:11:50 · 128 阅读 · 0 评论