动态规划
文章平均质量分 60
阿磊AC
学习编程的捷径是:编程,编程,再编程!
展开
-
最大子段和
N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。 例如:-2,11,-4,13,-5,-2, 和最大的子段为:11,-4,13。 和为20。原创 2017-05-17 19:38:17 · 275 阅读 · 0 评论 -
跳跃游戏二
给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。你的目标是到达最后一个下标,并且使用最少的跳跃次数。例如:A=[2,3,1,1,4]A = [2,3,1,1,4]A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为222。(先跳跃111 步,从下标 000 到 111,然后跳跃333 步,到原创 2017-07-24 09:38:24 · 485 阅读 · 0 评论 -
穿过街道
题目: 一个城市的街道不惧如下,从最左下方到最右上方,每次只能往上或往右走,一共有多少种走法? 输入: 输入很多行,每行一个数字代表n的值,当n=0时结束(2 输出: 输出对应每行n值的走法#include#includeusing namespace std;int main(){ int n原创 2017-08-08 19:33:54 · 609 阅读 · 0 评论 -
猜数字游戏
牛牛和羊羊在玩一个有趣的猜数游戏。在这个游戏中,牛牛玩家选择一个正整数,羊羊根据已给的提示猜这个数字。第i个提示是"Y"或者"N",表示牛牛选择的数是否是i的倍数。例如,如果提示是"YYNYY",它表示这个数使1,2,4,5的倍数,但不是3的倍数。注意到一些提示会出现错误。例如: 提示"NYYY"是错误的,因为所有的整数都是1的倍数,所以起始元素肯定不会是"N"。此外,例如"YNNY"的提转载 2017-08-02 10:08:26 · 907 阅读 · 0 评论 -
矩阵取数问题
一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。例如:3 * 3的方格。1 3 32 1 32 2 1能够获得的最大价值为:11。Input第1行:N,N为矩阵的大小。(2 <= N <= 500)第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖原创 2017-09-24 21:31:15 · 536 阅读 · 0 评论 -
数塔取数问题 --51Nod 1级算法
一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值。每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上。 5 8 4 3 6 97 2 9 5例子中的最优方案是:5 + 8 + 6 + 9 = 28Input第1行:N,N为数塔的高度。(2 <= N <= 500)第2原创 2017-09-17 22:07:56 · 517 阅读 · 0 评论 -
51Nod--正整数分组--01背包问题
将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。Input第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N Output输出这个最小差Input示例512345Output示例1解析:典型的01-背包问题原创 2017-09-26 20:20:13 · 378 阅读 · 0 评论 -
最长公共子序列Lcs---51--Nod
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串B(A,B的长度 Output输出最长的子序列,如果有多个,随意输出1个。Inp原创 2017-09-18 19:56:55 · 597 阅读 · 0 评论 -
array array array-- 2017 ACM/ICPC Asia Regional Shenyang Online
Problem DescriptionOne day, Kaitou Kiddo had stolen a priceless diamond ring. But detective Conan blocked Kiddo's path to escape from the museum. But Kiddo didn't want to give it back. So, Kiddo ask原创 2017-09-11 19:20:02 · 386 阅读 · 0 评论 -
背包问题-----51Nod
在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。Input第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000)第2 - N + 1行,每行2个整数,Wi和Pi,分别是物品的体原创 2017-09-20 16:47:48 · 423 阅读 · 0 评论 -
Corn Fields
DescriptionFarmer John has purchased a lush new rectangular pasture composed of M byN (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squa原创 2017-07-18 19:22:49 · 591 阅读 · 0 评论 -
Max Sum
DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 1原创 2017-07-22 09:31:14 · 340 阅读 · 0 评论 -
动态规划解最长公共子序列问题
动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共字符子序列问题描述转载 2017-05-17 20:16:42 · 330 阅读 · 0 评论 -
最长递增子序列
题目描述求一个数列中,递增的最长的子序列(不要求连续)的长度。输入描述第一行输入一个整数n(n第二行输入n个整数(每个整数小于1000)组成的一个数列,相互之间用空格隔开。输出描述输出所求的结果。输入样例104 2 9 4 9 6 7 2 9 6输出样例5提示AC代码如下:#include#include原创 2017-06-08 14:06:06 · 820 阅读 · 0 评论 -
橱窗的插花问题
题目描述花店的橱窗固定了一排花瓶共有V个,现有F束不同种类的花,用来插入花瓶布置橱窗。 插花时的要求如下: 每瓶最多插一束花,而且,花也必须按照编号1至F从右到左插入花瓶。由于花瓶可能比花多,所以有些花瓶是空着的。由于花瓶的式样和颜色各不相同,所以不同的花插入花瓶中给人的美感效果也不一样。店主人把每一束花插在每一个花瓶中的美感效果都打了一个分。请你为店主人确定应该如何插花,原创 2017-06-09 21:50:42 · 2049 阅读 · 1 评论 -
拦截导弹
题目描述某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。输入描述每组输入有原创 2017-07-13 09:07:09 · 804 阅读 · 0 评论 -
最长公共子序列
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=是序列X=的一个子序列,Z中的元素在X中的下标序列为。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入描述输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。输出描述对于原创 2017-07-13 11:02:37 · 1297 阅读 · 0 评论 -
A - Maximum sum-线性动态规划
SubmitStatusDescriptionGiven a set of n integers: A={a1, a2,..., an}, we define a function d(A) as below:Your task is to calculate d(A). InputThe input consists of T(<=30原创 2017-07-16 10:56:25 · 369 阅读 · 0 评论 -
Common Subsequence
DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = another sequence Z = is a subsequence of X if there exists a原创 2017-07-16 14:18:05 · 308 阅读 · 0 评论 -
最少拦截系统
Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请原创 2017-07-16 16:37:57 · 313 阅读 · 0 评论 -
Palindrome
DescriptionA palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determines t原创 2017-07-20 15:22:37 · 353 阅读 · 0 评论 -
编辑距离------DP(动态规划)
编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)sitting (->g)所以kitten和sitting的编辑距离是3。俄原创 2017-10-09 12:44:23 · 861 阅读 · 0 评论