动态规划基本思想: 将待求解的问题分解为若干个子问题(阶段),按顺序求解子问题,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。 由于动态规划解决的 ...
分类:
其他好文 时间:
2019-11-01 16:13:10
阅读次数:
74
动态规划 本人对动态规划的理解:我认为动态规划其实就是搜索的一种,但更加优美,速度更高。递归的方式就是老师说的备忘录,其实就是记忆化深搜,但本质上就是通过状态转移进行递推,所以能通过迭代的方式求解,当前问题的最优解依赖于子问题的最优解,于是当最小子问题初始化出答案后就可以一步一步往当前问题递推。妙啊 ...
分类:
其他好文 时间:
2019-11-01 12:47:10
阅读次数:
60
0-1背包 Description 给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能 ...
分类:
其他好文 时间:
2019-10-31 13:49:13
阅读次数:
113
问题描述 0 1背包问题:给定$n$种物品和一背包。物品i的重量是$w_i$,其价值为$v_i$,背包的容量为$C$。问:应该如何选择装入背包的物品,使得装人背包中物品的总价值最大? 在选择装人背包的物品时,对每种物品$i$只有两种选择,即装人背包或不装入背包。不能将物品$i$装入背包多次,也不能只 ...
分类:
其他好文 时间:
2019-10-31 09:14:16
阅读次数:
98
树形$dp$摸瞎历程 前言: + 什么是树形$dp$? 简而言之,树形dp,就是在树形结构上的动态规划,由于树形结构具有一定的特点,可以描述比较复杂的关系,再加上树的递归定义,是一种非常合适动规的框架,属于动规中很特殊的一种类型。 + 如何实现树形$dp$? 树形dp的状态表示中,第一位通常是节点编 ...
分类:
其他好文 时间:
2019-10-30 22:52:22
阅读次数:
91
一、问题描述 给定n个数字矩阵A1,A2,…,An,其中Ai与Ai+1是可乘的,设Ai是pi 1 pi矩阵, i=1,2,…,n。求矩阵连乘A1A2...An的加括号方法,使得所用的乘次数最少。 例子 三个矩阵连乘,可以有(A1A2)A3和A1(A2A3)两种方法求积 ,乘法次数分别为: p0p1p ...
分类:
其他好文 时间:
2019-10-29 11:21:54
阅读次数:
607
https://www.luogu.org/problem/P2868 分析: 明显的01分数规划 求最优比率环 用dfs版的spfa找负环 二分就好 code by wzxbeliever: c++ include include include include include define N ...
分类:
其他好文 时间:
2019-10-29 09:24:07
阅读次数:
69
#include <iostream> #include <vector> #include <algorithm> using namespace std; /*** * 分析:< 最优化问题 >此题用动态规划去写 * 1、第一步确定状态 >直接用它自己本身去写A[n][c] * 表示从第n层的第... ...
分类:
编程语言 时间:
2019-10-28 01:24:29
阅读次数:
94
这是提高组得一道动态规划题,也是学习y氏思考法的第一道题。 题意为给定一个矩阵,里面存有一些数,你从左上角开始走到右下角,另一个人从右下角开始走到左上角,使得两个人取数之和最大,当然一个数只可以取走一次并且行走规则与采花生一样。开始之前我们把问题进行一下转化,把右下角的人拿到左上角来,也让其往下走。 ...
分类:
其他好文 时间:
2019-10-28 01:01:53
阅读次数:
137
之前在其他博客看到了,但是算法的关键部分完全看不懂为什么要这么做,直到最近上算法课,才终于知道到底怎么来的。 问题描述: 给出一个数组,求其最大连续子数组和 例:数组{1,2,3,4,-5,10,-1,-1}的最大连续子数组和是子数组{1,2,3,4,-5,10}的和15 算法过程: 这个算法能从零 ...
分类:
编程语言 时间:
2019-10-28 00:26:03
阅读次数:
137