算法

最小生成树图文讲解

最小生成树图文讲解本篇主要图文讲解最小生成树的实现和算法。一、最小生成树最小生成树(minimumspanningtree)是由n个顶点,n-1条边,将一个连通图连接起来,且使权值最小的结构。最小生成树可以用Prim(……

计数DP实例讲解

计数DP实例讲解本篇主要从计数DP上结合实例分析。一、计数类DP——整数划分整数划分大体上可以分为3类(1)考虑顺序的拆分方案(即1,1,2;和2,1,1是两种不同的方案),这种问题一般转化为……

什么是Lyndon分解?

什么是Lyndon分解?我们定义一个串是Lyndon串,当且仅当这个串的最小后缀就是这个串本身。该命题等价于这个串是它的所有循环表示中字典序最小的。引理1:如果u和v都是Lyndon串并且u<v,则uv也是Ly……

快速排序算法C/C++代码图文讲解

快速排序算法C/C++代码图文讲解快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事……

递归算法概念与实例讲解

递归算法概念与实例讲解本篇主要是围绕着递归算法的概念、实质、思想以及设计要素四个方向叙述,同时通过实例讲解,促进大家对递归算法的理解。一、算法概念递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的……

动态规划DP算法详解

动态规划DP算法详解1.简介动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研……

离散化算法实例讲解

离散化算法实例讲解说到离散化,可能很多人不知道这是什么,小编简单给大家介绍一下,后面会详细说明,离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可……

树的遍历之中序遍历二叉树

树的遍历之中序遍历二叉树1.简介依旧是下面的这三句话:先序遍历:根左右中序遍历:左根右后序遍历:左右根      &……

图论中的有向无环图

图论中的有向无环图在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均……

栈的定义和特点

栈的定义和特点数据结构的重要部分,栈,栈是OI中常用的一种线性数据结构,请注意,本文主要讲的是栈这种数据结构,而非程序运行时的系统栈/栈空间,大家一定要弄清晰,别混淆了。栈的定义和特点栈(stack)是一个特殊的线……