![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划经典题目
Ginkgo__
怕什么真理无穷,进一寸有进一寸的欢喜。
展开
-
n皇后问题与八皇后
这里的n皇后问题指在一个nxn的棋盘上放置n个棋子,使得每行每列和每条对角线上都只有一个棋子,求其摆放的方法数。 当且仅当n = 1 或 n ≥ 4 时问题有解。 class Queens { public: int sum=0;//排列方法数 //验证能否放棋子,n代表行数 bool Test(int chess[],int cur) { ...原创 2018-08-31 15:28:58 · 378 阅读 · 0 评论 -
动态规划笔记——最长公共子序列&&最长公共字串&&机器人走方格&&爬楼梯
最长公共子序列 Ax= a1,a2,……ax, By= b1,b2,……by, LCS(m,n)表示它们的最长公共子序列长度。L(x, y)表示Ax和By的一个最长公共子序列。 令x表示子序列考虑最后一项 (1) t = Ax = By 那么它们L(x,y)的最后一项一定是这个元素 此时:LCS(Ax, By) = LCS(x - 1, y - 1) + 1 (2) Ax ≠ By 仍...原创 2018-08-30 11:52:49 · 151 阅读 · 0 评论 -
求连续子数组的最大和
设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i] = max(sum[i-1] + a[i], a[i])。可以通过判断sum[i-1] + a[i]是否大于a[i]来做选择,而这实际...原创 2018-09-05 15:07:55 · 127 阅读 · 0 评论