随笔分类 - dp
摘要:题意:二维矩阵由左上角到右下角只能向右或向下走,求所有可能路径取值之和最大值 输入样例: 5 5 0 5 37 53 955 10 19 23 865 58 82 89 98 0 14 50 6889 5 10 41 0 输出样例: 467 #include <iostream> using nam
阅读全文
摘要:给出一个股票 n 天内每天的价格。 在某天买入后,可在第二天及后任意天卖出,允许买入卖出多次买卖,但只允许一笔交易,买入卖出后才可以再买。 求可以获取的最大利润? 输入样例: 6 7 1 5 3 1 4 输出样例: 7 思路:只有后一天比前一天股价高,那么就值得在前一天买入第二天卖掉,并且可以由局部
阅读全文
摘要:假设你是一个专业的窃贼,准备沿着一条街(n个房屋)打劫房屋。每个房子都存放着特定金额的钱ai。你面临的唯一约束条件是:相邻的房子装着联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。 给定房屋数量n,给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以
阅读全文
摘要:字符A-Z可以编码为1-26。"A"->"1","B"->"2",.. "Z"->"26" 现在输入一个数字字符串,计算有多少种方式可以将该字符串解码成字符A-Z组成的序列。 输入输出样例: 输入:19 输出:2 (AI或S) 输入:268 输出:2 输入:219 输出:3 #include<ios
阅读全文
摘要:是有n户人家的房子排成一排,打算把他们的房子图上颜色,有red、green、blue三种颜色,每家人涂不同的颜色要花不同的费用,而且相邻两户人家之间的颜色要不同,求最小的总花费费用。 输入格式: 第一行输入n 接下来n行输入每种房子涂red green blue 颜色的价格 cost1 cost2
阅读全文
摘要:题意: 给定 m 行 n 列的网格,机器人从左上角( 0 , 0 )出发,每次只可以向左或向下走一步,走到右下角位置,问有多少种走法? 输入样例: 2 3 输出样例: 3 确定末状态: 在某位置 ( x , y ) ,可以化为子问题由 ( x-1, y )向下走一步,或由 ( x, y-1 )向右走
阅读全文
摘要:有2元的 5元的 7元的 硬币若干,凑出27元,需要最小硬币数 这是一个动态规划问题,对动态规划求解的思路如下: 1.确定状态:确定最后一步和倒数第二步之间的关系,就是把后面的问题转化为前面的子问题 x可以由x-2的情况再选面值2的硬币得到,也可以由x-5的情况选5面值的得到,还可以由x-7由面值7
阅读全文
摘要:问题描述 有n个物品,它们有各自的体积ci和价值wi,现有给定容量的背包v,如何让背包里装入的物品具有最大的价值总和? 原理: 动态规划与分治法类似,都是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题,最终达到解决原问题的效果。但不同的是,分治法在子问题和子子问题等上被重复
阅读全文
摘要:编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sitting: sitten (k→s) sittin (e→i) sitting (→g) 首
阅读全文
摘要:输入两个字符串,求最长公共字串长度,该字串的每个字符必须在这两个字符串都出现过,并且后出现的字符不能先于先出现的字符。 输入: a b c d e f g h a c j i f a b h h 输出: 4 #include <stdio.h> #include <iostream> #includ
阅读全文
摘要:问题:就是输入一个N*M的矩阵,找出在矩阵中,所有元素加起来之和最大的子矩阵。 思路:将输入的矩阵每一列求前几项和,此时矩阵的每一行都相当于一个二维矩阵,此后用求最大子序列求最大值即可。 #include <stdio.h> #include <iostream> #include <math.h>
阅读全文
摘要:问题: 求一段数列的子序列的和的最大值 输入: 第一排输入数列元素个数n 第二排输入每一个元素 输出: 输出子序列和最大值 输入样例: 6 -2 11 -4 13 -5 -2 输出样例: 20 思想:将数列每个数都加起来,如果该元素+sum大于0,都可能使最后结果最大 #include <stdio
阅读全文
摘要:题目描述:给出一个数列{a1,a2,...,an},要求你选出尽量多的元素,使这些元素按其相对位置单调递增。 任务就是对于给定的序列,求出最长上升子序列的长度。 输入数据:输入的第一行是序列的长度N(1<=N<=1000)。第二行给出序列中的N个整数,这些整数的取值范围都是0~10000。 输出要求
阅读全文

浙公网安备 33010602011771号