- 博客(3)
- 收藏
- 关注
原创 没学完DP也要学离散
动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划应用于子问题重叠的情况:要去刻画最优解的结构特征; 尝试递归地定义最优解的值(就是我们常说的考虑从转移到); 计算最优解; 利用计算出的信息构造一个最优解。第一道接触的DP无疑是背包DP(最简单的01背包)由于找不到自己写过得01背包,找了个几乎一摸一样(换了个皮肤)的题。下面是代码:#include <iostream>using namespace std;c...
2021-12-03 21:05:24
310
1
原创 算法学习笔记(二)拓扑排序
一、什么是拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。即所排成的线性序列满足下列条件:1.每个顶点只出现一次;2.若无向图中存在一条由u到v的路径,那么在序列中u在v的前面。只有有向无环图才存在拓扑排序,对于有环图,会存在无限循环排序的情况。例如下面这种:如图是一个有...
2021-10-07 01:12:12
339
原创 算法学习笔记(一) 学不会的并查集
并查集被认为是最简洁而优雅的数据结构之一,并查集明明这么简洁而优雅,但我却学了这么久。。主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:合并(Union)和查询(Find)合并:把两个不相关的元素集合合并为一个集合。查询:查询两个元素是否在同一个集合。我们用图来形象说明并查集的原理。首先所有元素各自在一个集合(自身是自身的父结点)然后2 和3并入到1所属的集合(2和3把1当作父结点)接着4和5并入到6所属的集合(4和5把6当作父结点)..
2021-09-17 15:47:01
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人