第九章 动态规划初步(习题)
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 · 682 阅读 · 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 · 585 阅读 · 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 · 370 阅读 · 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 · 428 阅读 · 0 评论
分享