随笔分类 - 算法总结
摘要:零、基础: 1、图的存储方式: 1)、邻接表: vector<int> h(n, -1); // 邻接表表头指针 vector<int> ne(n); // next指针 vector<int> e(n); // value vector<int> w(n); // 边的权值,有时不需要 int i
阅读全文
摘要:带权并查集是普通并查集的进阶版本,功能更加强大。 普通并查集只能判断两个元素是否在一个集合中,带权并查集可以维护集合元素之间的关系,这个关系由每个元素的权值维护。 对权值的维护,我们需要在find(),unite()操作中分别进行修改。 例:399. 除法求值 class UnionFind { p
阅读全文
摘要:并查集是一个非常优雅简洁的,相对高级的数据结构,常常用于元素分组问题。 对于并查集的介绍和推导这里不细说,推荐看Pecco的算法学习笔记。这里主要记录我使用并查集刷题的模板和技巧。 一、什么时候使用并查集? 个人认为并查集可以用在图中,可以用来求取图中的连通分量。当然题目不一定会直接给出图的数据结构
阅读全文
摘要:一、什么时候使用二分?: 大部分人接触二分应该二分查找算法,二分查找可以在一个有序区间中,找到指定的元素x的下标。 这里有两点:1、区间是有序的,即区间要满足一定条件。2、我们要找的数也有一定条件,二分查找要求找的数一定要等于x。 我们再看两题: AcWing.789.数的范围: 题目给出的
阅读全文