随笔分类 - 算法·理论
摘要:<目录 拓扑排序 \(\color{grey}\textsf{Top Sort}\) 有些时候,做事情是有条件的。 你只能学完 \(\sf 1+1=2\) 才知道能弄懂 \(\sf1+2=3\) 是怎么回事。 你只有先写下 int main() 才能写出拓扑排序。 但,如果这些事情的关系非常复杂,比
阅读全文
摘要:<目录 最小生成树 \(\sf\color{grey}Minimum\ Spanning\ Tree\) 生成树,是指在一张无向图中去掉一些边后剩下的子树。 最小生成树,就是图里边权和最小的生成树。 如何求最小生成树呢? 我们还是从点和边入手。 先从边开始吧…… \(\textsf{Kruskal}
阅读全文
摘要:并查集是一种只关心元素对于集合的所属关系的数据结构。 它的原型是一棵树,使用 “父亲表示法” 表示,用数组 Fa[i] 保存 i 的父亲的编号。 每个孩子都有一个父亲,而一个家族的祖先便是这个家族的标识。 如果你我有着同样的祖先,则你和我是一个家族的。 特别的,祖先的父亲是自己。 并查集善于添加关系
阅读全文
摘要:<目录 在开始之前…… 本文使用: \(\sf P_n\) 表示点 \(\sf n\) , \(\sf E_{u,v}\) 表示从 \(\sf P_u\) 点到 \(\sf P_v\) 点的边长, \(\sf Dis(f,t)\) 表示从 \(\sf P_f\) 点到 \(\sf P_t\) 点的最
阅读全文
摘要:<目录 栈,和队列,是两个基本的数据结构…… 栈 \(\sf\color{grey}Stack\) 定义 想象你在洗盘子,你从最上面拿下来一个盘子洗 \(\sf\color{gray}pop\) ,新来的盘子也往上堆 \(\sf\color{gray}push\) 。 是不是像极了一个盘子堆?先来的
阅读全文
摘要:<目录 动态规划 \(\sf\color{gray}Dynamic\ Programming\) 由来 动态规划是怎么来的? 我想,应该从递归说起…… 数字三角形 Number Triangles 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步
阅读全文
摘要:<目录 贪心 \(\sf\small\color{gray}Greedy\) 基本思想 贪心,从字面上去理解: 一个人,非常贪心,他不管做出这一步决定后会发生什么,他只管眼前的利益。 这就是贪心。 当然,这个算法的劣处也显现出来: 他不管做出这一步决定后会发生什么。 也就是说,如果这一步片面上是最优
阅读全文

浙公网安备 33010602011771号