最小生成树,克鲁斯卡尔(Kruskal)算法及C/C++代码实现 1.克鲁斯卡尔算法简介克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法(用来求加权连通图的最小生成树的算法)。在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次小边。而具体的操作过程为:a)将图的所有连接线去掉, 图 2022年05月19日 185 点赞 0 评论 137120 浏览
什么是差分约束系统? 什么是差分约束系统?差分约束系统是一种特殊的N元一次不等式组,它包含N个变量以及M个约束条件,每个约束条件都是由两个变量作差得到的,形如,其中是常数。我们根据题目要求,并用这M个约束条件求出某个不等式的最值,例如的最大值。怎么解?转化:把上面不等式稍微变形一下可以得到, 图论 2022年02月05日 234 点赞 0 评论 71356 浏览
参考及相关链接 参考目录:《大话数据结构》程杰著《数据结构与算法》小黑书,C语言版本《算法与数据结构》小黑书,JAVA版本互联网搜索引擎如百度和谷歌CSDNStack论坛在基本完成数据结构的学习,你应该可以做到:1.完全自由的写出链表,以及基本的操作方法和进阶, 后记 2022年01月31日 57 点赞 0 评论 76638 浏览
什么是概率DP? 一、概率DP顾名思义,概率DP就是动态规划求概率的问题。一般来说,我们将dp数组存放的数据定义为到达此状态的概率,那么我们初值设置就是所有初始状态概率为1,最终答案就是终末状态dp值了。我们在进行状态转移时,是从初始状态向终末状态顺推,转移方程中大致思路是按照当前状态去往不同状态的位置概率转移更新DP 动态规划 2022年01月05日 170 点赞 0 评论 94643 浏览
后缀自动机(单词的有向无环图)简介 在我们学习后缀自动机之前,一定要先了解什么是自动机?自动机(确定有限状态自动机)是由一个非空有限状态的集合Q、一个输入字母表Σ(非空有限字符的集合)、一个转移函数(单值映射)、一个开始状态、一个接受状态(终结状态)的集合所组成的5-元组。历史上, 字符串相关 2022年04月29日 223 点赞 0 评论 56478 浏览
希尔排序算法实例详解 1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2)稳定性:不稳定排序2.过程介绍希尔排序,又名递减增量排序算法,是一种非稳定的更高效的插入排序,在对几乎已经排好序的数据操作时,效率极高,即可以达到线性排序的效率, 排序算法 2022年03月10日 185 点赞 0 评论 95148 浏览
二分图的最大匹配、完美匹配和匈牙利算法 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集U和V,使得每一条边都分别连接U、V中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图。 图论 2022年01月30日 121 点赞 0 评论 103448 浏览
斯坦纳树Steiner Tree实例讲解 说到斯坦纳树问题,它是一种组合优化问题,与最小生成树相似,是最短网络的一种。最小生成树是在给定的点集和边中寻求最短网络使所有点连通。而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。一、斯坦纳树斯坦纳树问题是组合优化问题,与最小生成树相似, 图论 2022年05月10日 233 点赞 0 评论 90779 浏览
分治算法概念与实例讲解 本篇主要是围绕着分治算法的概念、思想、策略以及步骤四个方向叙述,同时通过汉诺塔游戏的讲解,促进大家对分治算法的理解。一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题, 算法基础 2022年05月09日 227 点赞 0 评论 99823 浏览
C++STL之stack栈容器 1.再谈栈回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的方式实现。2.头文件头文件#include<stack>3.初始化格式为:explicitstack(constcontainer_typ C++STL库教程(附带题库) 2022年04月30日 192 点赞 0 评论 88385 浏览