算法

C++STL之Set容器

C++STL之Set容器1.简介Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会……

简述LGV引理

简述LGV引理LGV引理可以用于在DAG上求解不相交路径方案数问题,下面我们简单介绍一下。一、简介LGV引理英文全称是Lindström–Gessel–Viennotlemma,可……

什么是拓扑排序?

什么是拓扑排序?拓扑排序的英文名是Topologicalsorting。拓扑排序要解决的问题是给一个图的所有节点排序。一、什么是拓扑排序在图论中,拓扑排序(TopologicalSorting)是一个有向无环图(DA……

解析字符串哈希(Hash)

解析字符串哈希(Hash)说到什么是字符串哈希(Hash)?很多人都会疑惑,我们可以这么理解,定义一个把字符串映射到整数的函数f,这个f称为是Hash函数。而我们希望这个函数f可以方便地帮我们判断两个字符串是否相等。(1)Ha……

结合实例解析宽度优先搜索(BFS)搜索

结合实例解析宽度优先搜索(BFS)搜索本篇将会结合实例解析宽度优先搜索(BFS)。一、BFS概念宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Pri……

快速排序算法实例详解

快速排序算法实例详解1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(nlogn)平均情况:O(nlogn) 稳定性:不稳定排序2.过程介绍快速排序是考察次数最多的排序,无论是在大学专……

用数组实现模拟算法C/C++实现(配例题)

用数组实现模拟算法C/C++实现(配例题)1.概念数组这个概念并不陌生,然而,数组本身也是一种数据结构。数组在存储数据时是按顺序存储的,存储数据的内存也是连续的,所以他的特点就是寻址读取数据比较容易,插入和删除比较困难。简单解释一下为什么,在……

反演变换的性质

反演变换的性质反演本质上是一种几何变换,常见的几何变换还有平移、旋转、反射……反演变换适用于题目中存在多个圆/直线之间的相切关系的情况。利用反演变换的性质,在反演空间求解问题,可以大幅简……

简述矩阵树定理

简述矩阵树定理Kirchhoff矩阵树定理可以简称矩阵树定理,可以解决了一张图的生成树个数计数问题。本篇中的图,无论无向还是有向,都允许重边,但是不允许自环。一、概况1.无向图情况设G是一个有n个顶点的无向图。定义……

数据结构的特点

数据结构的特点本篇我们来总结一下数据结构的特点,帮助大家更好的运用。1、数组数组使用下标查找十分迅速,但计算机内存有限,故数组的长度有限,数组初始化就需要声明数组的长度。实际应用当中的数据往往十分庞大;无序数组的查……