
DP算法(动态规划)
文章平均质量分 75
Rechard_chen
不积跬步无以至千里。
展开
-
数塔
Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 Ou原创 2014-07-16 10:22:35 · 563 阅读 · 0 评论 -
滑雪
DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14原创 2015-08-03 20:29:43 · 530 阅读 · 0 评论 -
ytaaa
DescriptionYtaaa作为一名特工执行了无数困难的任务,这一次ytaaa收到命令,需要炸毁敌人的一个工厂,为此ytaaa需要制造一批炸弹以供使用。 Ytaaa使用的这种新型炸弹由若干个炸药组成,每个炸药都有它的威力值,而炸弹的威力值为组成这个炸弹的所有炸药的最大威力差的平方,即(max-min)^2,假设一个炸弹有5个炸药组成,威力分别为5 9 8 2 1,那么它的威力为(9-1)^原创 2014-12-09 20:26:46 · 1064 阅读 · 0 评论 -
Brackets sequence
Description:Let us define a regular brackets sequence in the following way:1.Empty sequence is a regular sequence.2.If S is a regular sequence, then (S) and [S] are both regular sequences.3.If原创 2014-12-01 21:40:41 · 842 阅读 · 0 评论 -
A Spy in the Metro
DescriptionSecret agent Maria was sent to Algorithms City to carry out an especially dangerous mission. After several thrilling events we find her in the first station of Algorithms City Metro,原创 2014-11-21 20:30:24 · 1509 阅读 · 0 评论 -
机器分配
Problem Description总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。Input输入第一行为一个数T,表示测试示例的个数,对于每组测试示例,第一行有两个数原创 2014-11-20 19:18:39 · 779 阅读 · 0 评论 -
挖地雷
Problem Description在一个地图上有n个地窖(nInput输入有多组数据,每组数据的第一行为一个整数n,表示地窖的个数,第二行为n个地窖中的地雷数。下面多行数据以0,0结束,每行为两个数x和y,表示从x可以到y。Output对于每组数据输出两行,第一行为挖地雷的顺序,第二行为最多挖出的地雷数Sample Input65 10原创 2014-10-16 21:13:45 · 897 阅读 · 0 评论 -
合并石子
Problem Description在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请设计一个程序,计算出将N堆石子合并成一堆的最小得分。Input输入有多组数据,每组数据第1行为一个正整数N(2Output对于每组数据输出一个正整数,即最小得分。Sa原创 2014-10-31 11:58:01 · 608 阅读 · 0 评论 -
ZOJ-3162-To Go or Not to Go
点击打开题目链接# include # include # include using namespace std;double dp[30][2];void init(){ memset(dp,0,sizeof(dp)); for(int i = 1;i < 30;i++){ dp[i][1] = dp[i-1][1] + dp[i-1原创 2015-11-13 20:27:10 · 564 阅读 · 0 评论