第九章 动态规划初步(习题)
aozil_yang
这个作者很懒,什么都没留下…
展开
-
习题9-1 UVA 10285 Longest Run on a Snowboard 最长滑雪路径(记忆话搜索)
大体题意:给你一个n × m 的整数矩阵,让你随意选择一个起点,使得走出一条最长的严格递减路来! 输出最短路的长度!思路:写整体的话,肯定是先遍历起点,然后交给一个叫dfs的函数来处理(- -!)最后不断更新最大值即可!dfs(i,j)表示从i,j 出发的最短路长度!因为是记忆话搜索,所以发现dp[i][j] >= 0直接return dp[i][j];然后就是原创 2016-04-30 19:22:14 · 624 阅读 · 0 评论 -
例题9-1 UVA - 1025 A Spy in the Metro 城市里的间谍(DP)
题意不说了 书中说的很详细:思路:影响到决策的只有当前时间和所处的车站!用dp[i][j]表示时刻i,你在车站j,最少还需要等待的时间有三种决策:1.等一分钟!2.如果有向右的车,则搭乘向右的车!3.如果有向左的车,则搭乘向左的车!在输入m1和m2时就处理has_train 数组,has_train[i][j][0]表示有向左的车,1 表示有向右的车!则倒原创 2016-05-01 23:23:42 · 526 阅读 · 0 评论 -
UVA 1632 Alibaba(区间dp)
题意:告诉你n 个点位置和消失的时间,你可以从任意一个点出发,求出到达所有点的最小时间?思路:区间dp令dp[i][j][0] 你在i~j 这个区间的i 位置。dp[i][j][1] 表示你在i~j 这个区间的j 位置。转移的话 一个长度为k 的区间只能有长度为k-1的区间转移得到:吐槽:第一遍超时 写的记忆话搜索, 改成递推式后 可以免掉初始化这一步。这样就原创 2017-03-13 17:19:13 · 318 阅读 · 0 评论 -
UVA 1629 Cake slicing (区间dp --记忆话搜索)
题意:给你n*m的网格上有一些樱桃,每次可以用一刀切成两块,求最小切割长度,使得每一块蛋糕上只有一个樱桃?思路:记忆话搜索。令dp[u][d][l][r]表示 在上界为u 下界为d,左边为l右边为r的矩形切割成只有1个樱桃的最小长度。那么直接枚举切哪一刀记忆话搜索即可#include #include #include using namespace std;co原创 2017-03-14 02:30:56 · 374 阅读 · 0 评论