![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
while_black
这个作者很懒,什么都没留下…
展开
-
A - 一只小蜜蜂...B - 骨牌铺方格(兔子数列,动态规划)
兔子数列,从第三个开始,为前两个的数组值的和。narr[b-a+1] 相减的意思是,把他平移到最开始的1上去,类型于从1到指定值的数组值有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。Input输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a&...原创 2019-04-12 22:13:55 · 173 阅读 · 0 评论 -
数塔问题(经典动态规划)
两种方法,一种从上到下的递归寻找max;另一种为从下到上的迭代max在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <=...原创 2019-04-13 13:43:27 · 1948 阅读 · 0 评论 -
最长公共子序列 (LCS)
在两个字符串中,有些字符会一样,可以形成的子序列也有可能相等,因此,长度最长的相等子序列便是两者间的最长公共字序列,其长度可以使用动态规划来求。以s1={1,3,4,5,6,7,7,8},s2={3,5,7,4,8,6,7,8,2}为例。借用《算法导论》中的推导图:创建 DP数组C[][];图中的空白格子需要填上相应的数字(这个数字就是c[i][j]的定义,记录的...转载 2019-04-27 07:35:20 · 243 阅读 · 0 评论 -
最长回文串子串的dp算法(占空间大,耗时间长,还是马拉车算法,Manacher,好)
动态规划:首先定义dp含义,其次写出状态转换方程,dp初值必须提前定义好,最后确定哪个是最终最佳的dp值!!!!DP问题, 最长回文子串最长回文子串问题指的是在一个字符串中, 是回文子串的长度的最大值. 这里的回文子串是连续的.如字符串”PATZJUJZTACCBCC”, 他的最长回文子串是”ATZJUJZTA”, 长度为9, 当然它还有其他回文子串如”CCBCC”, 但是长度不够长....原创 2019-03-30 20:45:43 · 244 阅读 · 1 评论 -
ACM HRBUST - 1186 青蛙过河
HRBUST - 1186 青蛙过河在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是s到t...原创 2019-05-05 23:51:42 · 765 阅读 · 0 评论 -
动态规划-最优二叉搜索树-公式推导
#include <iostream>#include<bits/stdc++.h>using namespace std;const int MaxVal = 9999;const int n = 5;//搜索到根节点和虚拟键的概率double p[n + 1] = {0, 0.15, 0.1 , 0.05 , 0....转载 2019-04-30 21:29:44 · 421 阅读 · 0 评论 -
N皇后问题(dfs深搜与数论规律的使用)
这是一道深搜题目!问题的关键是在剪枝。下面我们对问题进行分析:1.一行只能放一个皇后,所以我们一旦确定此处可以放皇后,那么该行就只能放一个皇后,下面的就不要再搜了。2.每一列只能放一个皇后,所以我们下次搜索就不要再搜已经放过的皇后了。3.斜的45°线也只能放一个。综上如何才能最快速的确定一列和45°是否用过这个是个关键步骤,一旦此步骤确定我们就可以很快的进行搜索了。我们用三...转载 2019-04-05 22:11:39 · 575 阅读 · 0 评论 -
会场安排 ( 最少用几个会场 贪心)
https://blog.csdn.net/annmike/article/details/78751564有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?Input第一行一个正整数n (n <= 10000)代表活动的个数。第二行到第(n + 1)行包含n个开始时间和结束时间。开始时...转载 2019-04-10 22:53:20 · 1589 阅读 · 0 评论