动态规划
_Sincerely
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
采草药——01背包问题
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是辰辰,你能完成这个任务吗? 输入格式 第一行有两个整数 T(1≤T≤1000) 和 M(1≤M≤100),用一个空格隔开,T原创 2021-02-21 11:20:36 · 370 阅读 · 0 评论 -
迷宫问题
下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数最少的前提下,请找出字典序最小的一原创 2020-09-20 19:36:02 · 706 阅读 · 0 评论 -
动态规划#洛谷 P1002 过河卒
思路: 一开始使用了搜索,结果分数较低。 查看了部分题解后开始采用动态规划。 状态转换方程如下 代码: #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define ull unsigned long long using namespace std; const int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2}; c..原创 2020-08-11 23:10:06 · 228 阅读 · 0 评论 -
完全背包#洛谷 P1616 疯狂的采药
题目描述 LiYuxiang 是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是 LiYuxiang,你能完成这个任务吗? 此题和原题的不同点: 每种草药可以无限制地疯狂采原创 2020-08-11 16:30:46 · 291 阅读 · 0 评论 -
动态规划入门#矩阵连乘问题
动态规划算法通常用来求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。 动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 与分治法不同的是,适用于用动态规划求解的问题,经分解得到的子问题往往不是互相独立的。若用分治法来求解这类问题,则分解得到的子问题数目太多,...原创 2020-03-24 21:04:18 · 402 阅读 · 0 评论 -
#动态规划#最长公共子序列问题
求两个字符串的最长公共子序列。 给出动态规划方程: #include<iostream> #include<cstdio> using namespace std; const int maxn=100; //x[]存储第一个序列,y[]存储第二个序列,c[][]存储公共子序列的情况 //b[]记录c的值是由哪一个子问题的解得到的,用来构建最长公共子序列 void ...原创 2020-03-26 17:31:39 · 321 阅读 · 0 评论
分享