在处理一个较为复杂的问题时,划分为若干个小问题,在每一次进行选择时,都作出当前子问题的最优解,并认为子问题合并后的整体也达到了最优解或者近似最优解。 步骤: (1)建立数学模型来描述问题。 (2)把求解的问题分成若干个子问题。 (3)对每一子问题求解,得到子问题的局部最优解。 (4)把子问题的局部最 ...
分类:
编程语言 时间:
2020-04-02 15:42:12
阅读次数:
74
/* dp[i][j][k]表示到了第i颗子弹,cd1=j,cd2=k 的最优解 */ #include<bits/stdc++.h> using namespace std; #define N 1005 int cd1,cd2,n,b[N],dp[5][105][105]; int solve( ...
分类:
其他好文 时间:
2020-03-28 18:05:56
阅读次数:
61
贪心是一种解决问题的策略。 背包相关问题 最优装载问题:给出n个物体,第i个物体重量为wi.选择最多的物体,使得总重量不超过C。 每次都选择装最轻的,这是一种典型的贪心算法,它只顾眼前,却能得到最优解。 部分背包问题:有n个物体,第i个物体的重量为wi,价值为vi.在总重量不超过C的情况下让总价值尽 ...
分类:
其他好文 时间:
2020-03-25 23:13:23
阅读次数:
75
很多问题都可以归结为图的遍历,但这些问题中的图却不是事先给定、从程序中读入的,而是由程序动态生成的,称为隐式图。 回溯法一般是要找一个(或者所有)满足约束的解(或者某种意义下的最优解)。 路径搜索问题可以归结为隐式图的遍历,它的任务是找到一条从初始状态到终止状态的(最优)路径。 BFS是图的广度遍历 ...
分类:
其他好文 时间:
2020-03-25 01:19:47
阅读次数:
94
传统的图像识别问题往往通过分治法将其分分解为预处理、特征提取和选择、分类器设计等若干步骤。分治法的动机是将图像识别的母问题分解为简单、可控且清晰的若干小的子问题。不过分步解决子问题时,尽管可以在子问题上得到最优解,但子问题上的最优解并不意味着就能得到全局问题的最后解。 深度学习提供了一种“端到端”的 ...
分类:
其他好文 时间:
2020-03-24 00:49:48
阅读次数:
109
递推 无后效性,最优子结构 -》状态转移方程 -》 注意初始化 (边界值) -》注意枚举顺序(完全背包第二维从小到大,01背包从大到小,区间先长度再左) LIS接上之前最优解,LCS,背包问题(01背包,完全背包,分组背包,依赖性问题) 状态压缩,树形dp 看过最好的一篇讲解动态规划的 https: ...
分类:
其他好文 时间:
2020-03-23 22:19:08
阅读次数:
86
题意 "bzoj" 做法 令$f_{i,j,0/1}$为默认区间$[i,j]$左边有一个M,区间内是否有M的最优解 $f_{i,j,0}$ $f_{i,j,0}=min\{f_{i,k,0}+j k\}$ $f_{i,j,0}=f_{i,mid,0}+1$ $f_{i,j,1}$ $f_{i,j,1 ...
分类:
其他好文 时间:
2020-03-23 20:21:46
阅读次数:
55
心得:数据结构,我认为就是数据的存在的形式,视频中用图书馆的书来类比数据,很好的比喻,体现了数据的不同的存在方式,由于数据的混乱度和一些算法的时间复杂度是挂钩的,这就要求我们在处理一些混轮的数据,或者是已经排列好的了特殊的数据的类型的时候,需要用到不同的算法,如何用最优解来完成题目的要求,就是难度所 ...
分类:
其他好文 时间:
2020-03-21 21:29:41
阅读次数:
64
通常用来求解最优解 举例 斐波那契数列 有自顶向下(递归,时空复杂度高)和自底向上(迭代)两种解法 剪绳子 自下而上求出最优解 class Solution { public int cuttingRope(int n) { if(n<2) { return 0;} if(n==2) { retur ...
分类:
其他好文 时间:
2020-03-21 13:13:36
阅读次数:
60
写在前面:在看这篇题解前,首先需要学会基本的树型dp是什么,推荐一道题,是本题的简单版。 传送门 本题:题目链接 这是我第一次接触最大连通子树的题。 常规的树型DP,是先dfs求取子树的最优解,再回溯更新父节点的最优解。比如构造一棵最值线段树的过程就是这样: 每一个节点的最优解只受到子节点的影响,而 ...
分类:
其他好文 时间:
2020-03-18 11:22:33
阅读次数:
53