![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划(刘汝佳第九章)
文章平均质量分 89
sdjzping
这个作者很懒,什么都没留下…
展开
-
动态规划——数字三角形(递归or递推or记忆化搜索)
1、题目大意:有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数,如图 1 3 2 4 10 1 4 3 2 20从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来,如何走才能使得这个和尽量大、此题有三种解法:1、递归的方法:#inclu原创 2013-08-02 19:16:30 · 3882 阅读 · 1 评论 -
uva 624 CD (01背包+打印路径)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5652、01背包问题,注意打印路径的方式,可以定义一个二维的path数组,记录是否选中此物品,3、题目: CD You have a lo原创 2013-09-05 20:09:22 · 1528 阅读 · 1 评论 -
uva 10130 - SuperSale(01背包简单变换)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=10712、用滚动数组处理题目:SuperSaleThere is a SuperSale in a SuperHiperMarket. Every person can t原创 2013-09-05 20:46:19 · 837 阅读 · 0 评论 -
uva 10404 - Bachet's Game(DP)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=13452、题目大意:给n个石子,有m种取法,每次可以取m堆中的某一堆,Stan先取,Ollie再取,谁取到最后一个石子,谁获胜,最后输出获胜者即可乍一看挺简单,不过还是没想出来怎么做,看网上的原创 2013-09-12 17:11:15 · 761 阅读 · 0 评论 -
uva 825 - Walking on the Safe Side(DP,输入好坑。。。)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=7662、好坑的输入,题目大意是给定一个矩阵,然后给定特殊点,不能走,求出从起始点到终点 有多少33、题目: Walking on the Safe Side原创 2013-09-14 11:58:51 · 1115 阅读 · 0 评论 -
uva 10069 - Distinct Subsequences(大数相加+DP)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=10102、数据好大,longlong也不对,用大数相加dp[i][j]表示b的前i个字符在a的前j个字符中出现的次数状态转移方程;if(b[i-1]==a[j-1])//如果b的第i个字符原创 2013-09-16 21:21:51 · 833 阅读 · 1 评论 -
uva 10051 - Tower of Cubes(类似于LIS,带改正)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=9922、题目 Problem A: Tower of Cubes In this problem you are given N colorful原创 2013-09-17 21:02:56 · 714 阅读 · 0 评论 -
uva 10306 - e-Coins(二维完全背包)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=12472、题目大意:对于每个样例,先给定两个数n,m,分别表示有n种硬币,对于每一种硬币有两个价值,分别记做x,y,题目要求从中选择一些硬币,使得满足m=sqrt(x^2+y^2),其中是选出的硬原创 2013-09-27 19:35:59 · 1637 阅读 · 0 评论 -
uva 10651- Pebble Solitaire(状态压缩DP)待看。。。
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=15922、题目:Problem APebble SolitaireInput: standard inputOutput: standard outputTime Limit:原创 2013-09-27 16:34:19 · 986 阅读 · 0 评论 -
uva 590 - Always on the run
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5312、题目大意:给定两个数n,k,n个城市,k次航班,然后给出n*(n-1)条航班记录,前(n-1)行代表第一个城市分别到其他城市的航班,如果消费为0,则代表没有航班,例如第一个样例,前两行表第原创 2013-09-27 16:29:05 · 1346 阅读 · 0 评论 -
uva 10739 - String to Palindrome(带增删改操作的回文串问题)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=16802、题目大意:给定一个字符串,可以对其做以下三种操作,增加一个字符,删除一个字符,替换一个字符,求出使得该字符串成回文串的最小操作步数,每种操作执行一次算一步3、DP(x,y)表示比较到原创 2013-09-29 09:12:58 · 1527 阅读 · 0 评论 -
动态规划---最短编辑距离
描述:设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。要求:输入:第1行是字符串A,第2原创 2013-10-17 21:04:45 · 5168 阅读 · 0 评论 -
最长公共子序列+打印路径
一、问题描述 1 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,原创 2013-10-17 21:07:26 · 3497 阅读 · 0 评论 -
堆的各种操作
一、描述:A priority queue is a data structure formaintaining a setS of elements, each with an associated value called a key. A max-priorityqueue supports the following operations.. INSERT(S,x) ins原创 2013-10-18 15:55:46 · 643 阅读 · 0 评论 -
最优二叉搜索树
问题描述(详见算法导论P212-P213)对于给定关键字序列,构造一颗最优的二叉查找树T,使得在T内的一次搜索的期望代价最小前提概念一颗最优二叉树不一定是一颗整体高度最小的树;也不一定总把具有最大概率的关键字作为根节点二叉查找树的子树必定包含连续范围内的关键字当一颗树成为一个节点的子树时,它的期望代价增加值为该树中所有概率的总和最优子结构设包含有序关键字原创 2013-10-19 18:36:30 · 1024 阅读 · 0 评论 -
poj 1664 放苹果(递推,记忆化搜索)简单题
1、http://poj.org/problem?id=1664这道题目说起来也很简单,乍一看还真没思路,之前做过的居然看着别人分的类是动态规划,居然还写了老半天状态转移方程,真是弱爆了,要不是看以前的解题报告,还真当动态规划做到天黑了,纠结。。。。这道题目递推关系有三种情况1、如果m==1 或者n==1只有一种方案,也要注意当m==0的时候也是一种2、if(m>n)说明苹果多,盘原创 2014-02-21 23:14:00 · 1165 阅读 · 0 评论 -
uva 620 - Cellular Structure
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5612、题目好难懂。。。给定一个细胞链,只有AB两种字母组成,有三种方式,一种是OA,一种是OAB,一种是BOA,O代表是正常的细胞链,最后看一下这个细胞链是否是由这些组合构成的,如果有多种方式构原创 2013-09-13 10:16:10 · 1135 阅读 · 1 评论 -
uva 437 - The Tower of Babylon(DP)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=3782、题目: The Tower of Babylon Perhaps you have heard of the原创 2013-09-09 20:53:06 · 767 阅读 · 0 评论 -
uva 10285 - Longest Run on a Snowboard(dp+记忆化搜索)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=12262、题目大意:给定一个二维的矩阵,其中的数分别代表一些高度,现在可以从某一点滑雪,只能从高处往低处滑,问一条路径最多可以经过多少个点3、题目:Problem CLongest原创 2013-09-07 20:09:10 · 695 阅读 · 0 评论 -
uva 562 - Dividing coins(注意判断条件,可以转换成01背包做)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5032、题目大意:给定一个背包,里边有m件硬币,每种硬币的价值给出,现在要将这些硬币分给两个人,让两个人的金钱总数差值尽可能的小,用01背包就能解决,背包较小的那个的最大价值为背包容量的一半3原创 2013-08-16 21:02:34 · 905 阅读 · 0 评论 -
***uva 348 最优数组乘法序列(记忆化搜索+输出路径)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2842、最优矩阵链乘,详见刘汝佳算法入门经典P1703、题目: Optimal Array Multiplication SequenceGiven two原创 2013-08-19 15:47:48 · 765 阅读 · 0 评论 -
uva 10405 - Longest Common Subsequence(注意空格陷阱)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=13462、题目大意:给定两个字符串,求出最长的公共子串的长度,挺简单的题目,居然wrong在空格陷阱上了状态转移方程 if(str1[i]==str2[j])原创 2013-08-09 11:25:52 · 952 阅读 · 0 评论 -
uva 103 - Stacking Boxes 动态规划——最长路及字典序
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=392、题目大意:给定k个n维的盒子,求最多可以嵌套多少个盒子,类似于二维的盒子嵌套,对于n维的盒子稍作处理即可,首先将k个盒子看做k个点,建图,如果n维盒子X可以嵌套在n维盒子Y中,那么我们就从X原创 2013-08-09 10:24:04 · 1457 阅读 · 0 评论 -
uva 674 - Coin Change 动态规划
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=6152、题目大意:现在有五种硬币,面值分别是1,5,10,25,50,现在给定 一个金额值,将其换成以上的硬币,求有多少种换法3‘、想了好久终究是没有想对状态转移方程正确的方法应该是:dp原创 2013-08-10 10:07:30 · 3245 阅读 · 0 评论 -
uva 10003 - Cutting Sticks(区间DP)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=9442、题目大意:给定一根已知长度的木棍,给定n个切割点,要求按照切割点切割木棍,花费按照切割的木棍长度计算,例如有一根长10的木棍,切割点为2、4、7,如果按照2、4、7的原创 2013-08-12 10:04:41 · 1267 阅读 · 0 评论 -
uva 111 History Grading(动态规划——最长公共子序列)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=472、题目很简单,不过题意好麻烦,开始误以为是求给出的序列的最长公共子序列,实际上题目要求的是rank的最长公共子序列,而题目给出的是各个event的序列,得先求出每个event的rank再求最长公共原创 2013-08-08 16:08:26 · 1113 阅读 · 0 评论 -
uva 10131 越大越聪明
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=10722、题目大意:给您定很多象的重量和智商IQ值,现在要找出重量从小到大排序,智商IQ值从大小顺序的最长序列首先将象按照体重从小到大排序,然后求IQ的递减序列,开始用的LIS求的,不对,后来原创 2013-08-15 11:53:41 · 1153 阅读 · 0 评论 -
uva 116 动态规划-单向TSP(输出结果字典序)
1、2、题目大意:给定一个m × n的整数矩阵,你要写一个程序来计算出最小权值。一条路径从列1(第一列)的任意位置开始,包括一系列的移动,最终抵达列n(最后一列)。每一步均由列i到列i+1的相邻行(水平或对角)。 矩阵的第一行和最后一行(行1和m)认为是相邻的,也就是说矩阵是环绕的,就像一个水平的圆柱体。合法的移动图示如下。The weight of a path is the原创 2013-08-14 09:48:52 · 1536 阅读 · 0 评论 -
uva 10066 - The Twin Towers(动态规划-最长公共子序列)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=10072、题目大意,有两座塔,每坐塔都有不同的层次组成,每层的半径也不相同,现在要将两座塔改造成完全相同的两座塔,要求高度一样,每层的半径也一样,保证塔层不变,问新塔的最高高度是多少?最长公共原创 2013-08-16 15:30:28 · 873 阅读 · 0 评论 -
uva 10192 - Vacation(简单的最长公共子序列)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=11332、题目大意:一个人想要出去旅游,爸爸给了一个旅游序列,妈妈给了一个旅游序列,他想尽可能满足爸妈的建议,问她最多可以访问多少个城市?典型的最长公共子序列问题,注意输入可能有空格,gets()原创 2013-08-16 15:55:05 · 907 阅读 · 0 评论 -
uva 147 - Dollars(动态规划--完全背包)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=832、题目大意:给定11种面值分别为$100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c coins的钱,现在给定一原创 2013-08-16 17:32:38 · 2788 阅读 · 0 评论 -
uva 357 - Let Me Count The Ways(动态规划-注意dp初始化的问题)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2932、题目大意:给定五种硬币,及一个面值额,看有多少种方法可以组成当前面值额,很简单的dp题目,不过超时了一遍,注意处理这种问题时,dp的初始化只需一遍即可,不需要每次都初始化,后边如果n很大的话,原创 2013-08-16 20:13:04 · 1586 阅读 · 0 评论 -
uva 10465 - Homer Simpson(贪心+完全背包)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=14062、题目:给定一定时间,已知吃一种汉堡用时为m分钟,吃另一种汉堡用时为n分钟,求在保证剩余时间最少的情况下,吃的汉堡的最大数,如果时间有剩余,那么也要输出剩余的时间题目可以看成是简单的完全背原创 2013-09-06 16:53:08 · 1346 阅读 · 0 评论 -
uva 531 - Compromise(LCS+打印路径)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=4722、题目大意:‘给定两篇文章,由英文单词组成,求最长公共子序列,难点在于打印路径,需要排除打印3、题目: Compromise原创 2013-09-06 15:19:26 · 981 阅读 · 0 评论 -
codeforces 416 B. Art Union
1、http://codeforces.com/problemset/problem/416/B2、题目大意:有m副画,有n个画家,每个画家画完第一幅画之后才可以画第二幅画,每一副画需要n个画家来完成,只有第一个画家完成了,第二个画家才可以开始,求每幅画完成时的最短时间是多少3、思路这是一道dp的题目,dp[i][j]表示第i副画第j个画家完成时的最短时间状态转移方程:dp原创 2014-04-13 22:51:40 · 1332 阅读 · 0 评论