1. 动态规划 1. 三要素:定义状态,分解子问题(找到迭代公式),设置边界条件 2. 三种解题思路: 1. Brutal Force Search 2. Top Down(回溯+剪枝) 3. Bottom Up(memorization) 2. 解题模板 2.1 题目定义 1. $v[i]$ 第i ...
分类:
其他好文 时间:
2020-05-20 14:01:20
阅读次数:
69
前言 有人问我,什么是启发式算法?这个说来就话长了。那么,什么是呢?咱今天就来聊聊,并且,假定屏幕前的你只有大一刚学完谭浩强红本本的水平。 从背包问题说起 所谓算法嘛,肯定是要用来求解问题的。因此我们接下来的展开都需要围绕一个问题展开,那么我就用最简单的0 1背包问题( 1 0 knapsack p ...
分类:
编程语言 时间:
2020-05-17 13:30:57
阅读次数:
73
题目描述: 提交:背包问题 class Solution: def largestNumber(self, cost, target: int) -> str: dp = [[0 for _ in range(target + 1)] for _ in range(10)] def tmax(a,b ...
分类:
其他好文 时间:
2020-05-17 13:07:38
阅读次数:
49
[TOC] 背包问题(0 1背包问题) 假设你是个小偷,背着一个可装 4 磅东西的背包。 你可盗窃的商品有如下3件(摘自算法图解): 作为一名优秀的小偷,为了让盗窃的商品价值最高,该选择哪些商品呢? 很明显,小偷需要在满足背包容量要求下,选择价值总和最大的。 使用动态规划 先解决小背包(子背包)问题 ...
分类:
其他好文 时间:
2020-05-13 20:41:28
阅读次数:
74
125. 背包问题 II 中文English 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值. 问最多能装入背包的总价值是多大? 样例 样例 1: 输入: m = 10, A = [2, 3, 5, 7], V = [1, 5, 2, 4] ...
分类:
其他好文 时间:
2020-05-05 18:08:50
阅读次数:
51
1.区分状态 1)确定状态,分解问题 2) 子问题,子问题关系 2.初始条件,边界条件 1) DP(0) 2) 计算顺序 3.针对问题 1)计数,多少种方式,多少种组合,硬币问题 2)最值,最优代价问题,背包问题 3) 存在性问题 ...
分类:
其他好文 时间:
2020-05-05 16:19:04
阅读次数:
53
``` #include #define ll long long using namespace std; const int N=1005; const int M=10005; int n,m,a[N],b[N],c[N]; int dp[N][M];//dp[i,j]从前i个中拿,体积为j的... ...
分类:
其他好文 时间:
2020-05-04 21:35:19
阅读次数:
52
问题描述:有N种物品和一个容量是V的背包第i种物品最多有si件,每件体积是vi,价值是wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入: 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有N行,每行三个整数vi,wi,si,用 ...
分类:
其他好文 时间:
2020-05-03 20:34:48
阅读次数:
52
[toc] 背包问题 来源 完全基于 中山纪念中学 宋新波ppt 的一次复习 动态规划的关键点 最优化原理 子问题最优化结构 无后效性 未来与过去无关 状态 描述最优解的结构 状态转移方程 递归定义最优解的值 程序实现 用记忆化搜索或迭代法求解 No.1:01背包 问题 有N种物品和一个容量为V的背 ...
分类:
其他好文 时间:
2020-05-02 18:40:42
阅读次数:
74
前言 算法基础的第三部分!这几部分其实讲述的都不太详细,因为许多内容都算比较清楚了,也不想太深入讨论,不过应该后面会进行补充。 (总目录:https://www.cnblogs.com/jinkun113/p/12528423.html) 子目录列表 1、贪心 2、背包问题 3、正确性证明 2.3 ...
分类:
编程语言 时间:
2020-04-30 15:32:59
阅读次数:
76