![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法(动态规划)
Just Go For It Now
这个作者很懒,什么都没留下…
展开
-
Leetcode198 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入...原创 2022-02-04 22:03:17 · 144 阅读 · 0 评论 -
斐波那契数列问题的三种解法
递归解法int fib(int N) { if (N < 2) return N; return fib(N - 1) + fib(N - 2); }上述解法的时间复杂度为O(2^N),空间复杂度为O(N)动态规划解法解法一int fib(int N) { if (N < 2) return N; return fib(N - 1) + fib(N - 2); }上述解法的时间复杂度为O(N).原创 2021-02-22 11:52:04 · 218 阅读 · 0 评论 -
石子合并问题(动态规划)
题目描述在一个圆形操场的四周摆放NN堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将NN堆石子合并成11堆的最小得分和最大得分。输入格式数据的第11行是正整数NN,表示有N堆石子。第22行有NN个整数,第ii个整数a_iai表示第ii堆石子的...原创 2020-01-29 17:06:41 · 1736 阅读 · 1 评论 -
最优三角形剖分
#include <algorithm>#include <algorithm>#include <iostream>using namespace std;#define N 1000#define INF 100000int d[N + 1][N + 1], m[N + 1][N + 1];void optimal_polygon_t...原创 2020-01-27 16:27:55 · 198 阅读 · 0 评论 -
矩阵链乘法
#include <iostream>#include <cstring>#include <algorithm>using namespace std;#define N 100#define INF 1000000int p[N + 1], m[N + 1][N + 1];void matrixchain(int n) { m...原创 2020-01-27 15:54:07 · 113 阅读 · 0 评论 -
又是斐波那契数列(计蒜客)
有另一种斐波那契数列:F0=7,F1 =11,Fn=Fn−1+Fn−2(n≥2)。输入格式输入数据有多行组成,每一行上是一个整数n(n<10^6)。输出格式如果Fn 能被33整除,那么打印一行"yes",否则,打印一行"no"。#include <iostream>using namespace std;long long F[...原创 2020-01-25 18:45:18 · 887 阅读 · 0 评论 -
CSP之压缩编码(动态规划)
问题描述试题编号: 201612-4 试题名称: 压缩编码 时间限制: 3.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单...原创 2018-09-15 11:23:33 · 681 阅读 · 0 评论 -
Leetcode 编辑距离(动态规划)
给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符示例 1:输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -> ros...原创 2018-09-12 14:11:13 · 197 阅读 · 0 评论 -
Codeup 货币系统(完全背包问题)
21869: 货币系统题目描述母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。[In their own rebellious way],,他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,...原创 2018-09-09 09:40:55 · 648 阅读 · 0 评论 -
HDU Piggy-Bank(完全背包问题)
Piggy-BankTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35106 Accepted Submission(s): 17448Problem DescriptionBefore ACM can do anyt...原创 2018-09-08 22:48:38 · 210 阅读 · 0 评论 -
CCF(有趣的数)
问题描述试题编号: 201312-4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。...原创 2018-08-20 13:45:39 · 177 阅读 · 0 评论 -
最大子矩阵(动态规划)
题目描述已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。 比如,如下4 * 4的矩阵 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 的最大子矩阵是 9 2 -4 1 -1 8 这个子矩阵的大小是15。输入描述:输入是一个N * N的矩阵。输入的第一行给出N (0 < N <...原创 2018-08-10 08:40:59 · 1912 阅读 · 0 评论 -
动态规划问题(三)-----矩阵最小路径和
有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。给定一个矩阵map及它的行数n和列数m,请返回最小路径和。保证行列数均小于等于100.测试样例:[[1,2,3],[1,1,1]],2,3返回:4(方法一)暴力搜索法class MinimumPat...原创 2018-07-29 12:20:56 · 1572 阅读 · 0 评论 -
动态规划问题(二)-----台阶问题
有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。测试样例:1返回:1方法一(暴力搜索方法) class GoUpstairs {public: int countWays(int n) { ...原创 2018-07-29 10:58:47 · 524 阅读 · 0 评论 -
动态规划(一)----找零问题
有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法。给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim。测试样例:[1,2,4],3,3返回:2方法一(暴力搜索法)class ...原创 2018-07-29 10:28:55 · 857 阅读 · 0 评论