动态规划
yanyanwenmeng
这个作者很懒,什么都没留下…
展开
-
方格取数(动态规划经典题)
1. 设状态:f[i][j][h][k];//表示两条路同时走,第一条路径走到(i,j)时,第二条走到(h,k)时的最大数字和;2. 初始状态:f[0][0][0][0]=0; 最终状态:f[n][n][n][n];3. 状态转移方程:当i==h&&j==k时,f[i][j][h][k]=max{f[i-1][j][h-1][k],f[i][j-1][h][k-1],f[i-1]原创 2017-08-10 21:19:21 · 6318 阅读 · 3 评论 -
合唱队形(动态规划)
【例9.8】合唱队形时间限制: 1000 ms 内存限制: 65536 KB【题目描述】N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti...原创 2017-09-21 21:02:22 · 2786 阅读 · 0 评论 -
最长公共子序列(动态规划)
【例9.9】最长公共子序列时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=,则另一序列Z=是X的子序列是指存在一个严格递增的下标序列,使得对于所有j=1,2,…,k有: Xij=Zj例如,序列Z=是序列X=的子序列,相应的递增下标序列为。给定两个原创 2017-09-21 23:00:29 · 826 阅读 · 0 评论 -
最长公共子串(动态规划)
描述:计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符不区分大小写。输入:输入两个字符串输出:输出一个整数样例输入:asdfas werasdfaswer样例输出:6参考网址:http://blog.csdn.net/u013074465/article/details/45原创 2017-09-21 23:29:31 · 411 阅读 · 0 评论 -
最短路径问题(floyd算法)
【例4-1】最短路径问题时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】平面上有n个点(n若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。【输入】共n+m+3行,其中:第一行为整数n。第2行到第n+1行(共n行) ,每行两个整数x原创 2017-10-05 04:58:10 · 763 阅读 · 0 评论 -
6.1 动态规划:数字三角形
在上面的数字三角形中寻找一条从顶部到底边的路径,使得 路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。输入:57 3 88 1 02 7 4 44 5 2 6 5输出:30 解析:如果要算第1行第1个数字到底边的最大和,就要先算第2行第1个数字以及第2行第2个数字到底边的最大和;要算第2行第1个数字...原创 2018-10-25 10:22:42 · 506 阅读 · 0 评论 -
6.2 动态规划解题的一般思路
人人为我,就是已知指向人人,未知指向我,由已知推向未知的情况 来自算法图解:背包问题:最长公共子串:最长公共子序列: 1. 动态规划可帮助你在给定约束条件下找到最优解。在背包问题中,你必须在背包容量给定的情况下,偷到价值最高的商品。2. 在问题分解为彼此独立且离...原创 2018-10-29 12:22:26 · 353 阅读 · 0 评论 -
动态规划(一)
视频地址:https://www.bilibili.com/video/av16544031?from=search&seid=5667814394353431842斐波那契数列: 我们可以看到很多结果重复计算了,有很多重叠子问题。可以利用数组存储中间的过程,减少重复计算。 动态规划例题:一共有8个任务,每个任务可以赚不同的钱,每个任务不能有时间重...原创 2018-12-04 16:24:23 · 167 阅读 · 0 评论 -
方格取数
题目描述设有N \times NN×N的方格图(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 ...原创 2019-03-16 20:33:12 · 799 阅读 · 0 评论 -
相似基因
题目背景大家都知道,基因可以看作一个碱基对序列。它包含了44种核苷酸,简记作A,C,G,TA,C,G,T。生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物。在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度。因为这个研究对疾病的治疗有着非同寻常的作用。题目描述两个基因的相似度的计算方法如下:对于两个已知基因,例如AGTGATGAGTGATG和GTT...原创 2019-03-17 00:33:16 · 1186 阅读 · 0 评论 -
1194:移动路线
1194:移动路线时间限制: 1000 ms 内存限制: 65536 KB提交数: 3096 通过数: 2454【题目描述】X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了...原创 2019-06-25 09:52:15 · 553 阅读 · 1 评论 -
1195:判断整除
1195:判断整除时间限制: 1000 ms 内存限制: 65536 KB提交数: 3741 通过数: 1461【题目描述】一个给定的正整数序列,在每个数之前都插入++号或−−号后计算它们的和。比如序列:1、2、41、2、4共有88种可能的序列:(+1) + (+2) + (+4) = 7(+1) + (+2) + (-4) = -1(+1...原创 2019-06-25 11:10:18 · 3569 阅读 · 0 评论 -
1196:踩方格
1196:踩方格时间限制: 1000 ms 内存限制: 65536 KB提交数: 3356 通过数: 2220【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走n步,共...原创 2019-06-25 11:26:57 · 566 阅读 · 0 评论 -
连续子段和问题(动态规划)
【问题描述】给出一段序列,选出其中连续且非空的一段使得这段和最大。【输入格式】输入文件的第一行是一个正整数 N,表示了序列的长度。第 2 行包含 N 个绝对值不大于 10000 的整数 A[i],描述了这段序列。【输出格式】输入文件仅包括 1 个正整数,为最大的子段和是多少。【样例输入】72 -4 3 -1 2 -4 3【样例输出】4原创 2017-09-20 21:09:00 · 1872 阅读 · 0 评论 -
友好城市(动态规划,排序)
【例9.7】友好城市时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交原创 2017-09-20 15:47:46 · 1384 阅读 · 0 评论 -
编辑距离和最长公共子序列(动态规划经典题)
编辑距离:1. 设状态:f[i][j]表示s1串的前i个字符和s2串的前j和字符相等时A串最少字符操作次数;2. 初始状态:f[i][0]=i;//当s2串没有字符时,最少操作次数为将s1串的所有字符删除; f[0][i]=i;//当s1串没有字符时,最少操作次数为在s1串插入s2串对应位置一样的字符;3. 最终状态:当s1[i-1]=原创 2017-08-10 11:01:50 · 1424 阅读 · 0 评论 -
乘积最大(动态规划经典题)
1. 设状态:f[i][k];//在数字串的前i位里面插入k个乘号的最大乘积2. 初始状态:f[i][0]=a[1][i];//不插入乘号时的结果等于a[1][i];a[j][i]表示从第j位到第i位组成的自然数 最终状态:f[n][k1];3. 状态转移方程:f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]);//j表示最后一个乘号的插入位置原创 2017-08-03 01:25:18 · 1407 阅读 · 0 评论 -
复制书稿(动态规划经典题)
Problem Description现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三和第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。Input输入有多组数据,每组数据第1行两个整数m,k(k第2行m个整数,第原创 2017-08-16 15:56:16 · 4506 阅读 · 0 评论 -
棋盘分割(递归,动态规划)
193:棋盘分割总时间限制: 1000ms 内存限制: 65536kB描述将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行)原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。现在需要把棋原创 2017-08-19 12:11:55 · 2250 阅读 · 2 评论 -
最长不下降子序列
/*开辟一个堆栈数组stack[],每次取栈顶元素top和读到的元素temp做比较,如果temp>top则将temp入栈,如果temp<=top则二分查找栈中的比temp大的第一个元素,并用temp替换他,最后max即为栈的大小 */ #include #include #define SIZE 1001using namespace std; int main(){ i原创 2017-05-16 16:58:10 · 215 阅读 · 0 评论 -
合并石子(动态规划经典题)
步骤:1. 设状态:f[i][j]表示从第i堆合并到第j堆,合并成一堆的最小得分2. 初始状态:f[i][i]=0; 最终状态:f[1][n];//从第1堆合并到第n堆的最小得分3.状态转移方程:f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1]);//s[i]表示前i堆石头数量总和/*71378162141原创 2017-08-03 00:19:46 · 2434 阅读 · 1 评论 -
01背包问题
【例9.11】01背包问题时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】一个旅行者有一个最多能装M公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,M(背包容量,M第2..N+1行:每行二个整数Wi,Ci,表示原创 2017-09-14 01:09:29 · 2570 阅读 · 0 评论 -
数字金字塔(动态规划)
观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。原创 2017-09-14 21:19:02 · 12399 阅读 · 0 评论 -
多阶段决策过程的最优化问题(动态规划)
最短路径问题。下图给出了一个地图,地图中的每个顶点代表一个城市,两个城市间的一条连线代表道路,连线上的数值代表道路的长度。现在想从城市A到达城市E,怎样走路程最短?最短路程的长度是多少?原创 2017-09-14 19:58:55 · 14374 阅读 · 0 评论 -
拦截导弹(贪心+动态)
【例9.4】拦截导弹(Noip1999)时间限制: 1000 ms 内存限制: 65536 KB【题目描述】某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的...原创 2017-09-18 00:18:10 · 1478 阅读 · 0 评论 -
城市交通网(动态规划,最短路径,输出最短路径)
【例9.5】城市交通路网时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】下图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。试用动态规划的最优化原理求出A->E的最省费用。如图:求v1到v10的最短路径长度及最短路径。【输入】第一行为城市的数量N;后面是N*N的表示两个城市间费用组成的矩阵。【输原创 2017-09-18 18:31:13 · 7286 阅读 · 2 评论 -
求最长不下降序列并输出序列(动态规划)
【例9.3】求最长不下降序列时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】设有由n(1b(j)(i例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。例中13,16,18,19,21,22,63就是一个长度为7的不下降序列,同时也有7 ,9,16,18,19,21,22,63组成的长度为8的不下降序原创 2017-09-18 20:48:46 · 2378 阅读 · 0 评论 -
挖地雷(动态规划 输出路径)
【例9.6】挖地雷时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】在一个地图上有n个地窖(n【输入】第一行:地窖的个数;第二行为依次每个地窖地雷的个数;下面若干行:xi yi //表示从xi可到yi,xi最后一行为"0 0"表示结束。【输出】k1-k2-…-kv //挖地雷的顺序挖到最多原创 2017-09-20 14:57:16 · 1704 阅读 · 1 评论 -
1197:山区建小学
1197:山区建小学时间限制: 1000 ms 内存限制: 65536 KB提交数: 1428 通过数: 983【题目描述】政府在某山区修建了一条道路,恰好穿越总共mm个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为didi(为正整数),其中,0<i<m0<i<m。为了提高山区...原创 2019-06-25 16:16:34 · 4744 阅读 · 2 评论