动态规划
文章平均质量分 87
Yang Special
你若盛开,蝴蝶自来。
展开
-
牛客网练习赛13部分总结
F-m皇后问题problem链接:https://www.nowcoder.com/acm/contest/70/F 来源:牛客网在一个n*n的国际象棋棋盘上有m个皇后。 一个皇后可以攻击其他八个方向的皇后(上、下、左、右、左上、右上、左下、右下)。 对于某个皇后,如果某一个方向上有其他皇后,那么这个方向对她就是不安全的。 对于每个皇后,我们都能知道她在几个方向上是不安全的...原创 2018-04-05 15:48:59 · 334 阅读 · 0 评论 -
最长子串和为k的倍数的长度和最长子序列和为k的倍数的长度
暴力解法 + 优化暴力解法就是双重循环。 - 优化点在于我们从最长开始判断可以尽早的结束。只要找到第一次整除,即可获取到结果。 所以外层循环为长度,内循环为该长度的起始点。 比如对于长度n,从索引1开始,此时就1个子串。 比如对于长度n - 1, 从索引1开始会有2个子串,是:[1, n - 1], [2, n]。 以此类推,直到外循环长度为0结束。 其上可以在第一次整除的情...原创 2018-04-18 23:54:29 · 2028 阅读 · 0 评论 -
POJ3276-翻转奶牛
题目Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing forward, like good cows. Some of them are facing backward, though, and he needs them all to face forward to...原创 2018-05-16 10:26:17 · 664 阅读 · 0 评论 -
SDNUOJ 1048 石子合并2(区间动态规划)
题目描述有n堆石子排成一圈,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和。已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分。 Input 第一行一个整数n(1 <= n <= 200),表示石子堆数; 第二行n个整数a(1 <= a <= 100),表示每堆石子的个数,这些石子首尾相接排成一圈。 Output 一个整...原创 2018-06-04 15:29:10 · 461 阅读 · 0 评论 -
HDU 3499 Flight(SPFA + dp)
题目Recently, Shua Shua had a big quarrel with his GF. He is so upset that he decides to take a trip to some other city to avoid meeting her. He will travel only by air and he can go to any city if th...原创 2018-06-05 11:22:34 · 308 阅读 · 0 评论 -
SDNUOJ 1045 石子合并1(区间动态规划)
题目描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。 输入 有多组测试数据,输入到文件结束。 每组测试数据第一行有一个整数n,表示有n堆石子。 接下来的一行有n(0&lt; n &lt;200)个数,分别表示这n堆石子的数目,用空格...原创 2018-05-31 09:28:23 · 2005 阅读 · 0 评论 -
剑指Offer-08-跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 n&amp;amp;lt;=39解析预备知识此题为斐波那契数列的变形,也就是上一篇博客所讲的东西,只不过是数列的第0项为1,第1项为1,第二项为2。所以上一篇博客里面的代码只需改掉第0项的值为1,就可以完美解决这道题。我这里再重复说一下! 通项公式为: f(n)= \...原创 2018-06-14 15:03:47 · 224 阅读 · 0 评论 -
剑指Offer-09-变态跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解析此题在这一题上更改了跳台阶的条件,比如青蛙可以一次跳1次,跳2次,……跳n次,此时青蛙走到n阶台阶的总共有多少种呢? 通项公式为: f(n)={1,f(n−1)+f(n−2)....+f(0),n = 0n > 1f(n)={1,n = 0f(n−1)+f...原创 2018-06-14 20:20:23 · 183 阅读 · 0 评论 -
剑指Offer-10-矩阵覆盖
题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解析这类求种数问题都是有规律,故可以用动态规划来做,如果没有思路,那么可以通过举例子或者画图来描述从而找到问题的解。 1. 当n = 0,f(0) = 0, 矩阵面积为0,所以当然没法放小矩形了。 2. 当n = 1, f(1) = 1。2*1的...原创 2018-06-14 21:02:35 · 296 阅读 · 0 评论