算法

什么是记忆化搜索?

什么是记忆化搜索?首先大家要知道,记忆化搜索是动态规划的入门。什么是记忆化搜索?搜索的低效在于没有能够很好地处理重叠子问题;动态规划虽然比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈。记忆化……

字典树(trie)/前缀树(Prefix Tree)实例讲解

字典树(trie)/前缀树(Prefix Tree)实例讲解对于字典树/前缀树可能大部分情况很难直观或者有接触的体验,尤其是对前缀这个玩意没啥概念,可能做题遇到前缀问题也是使用暴力匹配蒙混过关,如果字符串比较少使用哈希表等结构可能也能蒙混过关,但如果字符串比较……

简述LGV引理

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

什么是拓扑排序?

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

矩阵的介绍及乘法运算(附C语言实现代码)

矩阵的介绍及乘法运算(附C语言实现代码)1.矩阵概念在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常……

最小表示法算法解析

最小表示法算法解析提到最小表示法,要了解它的定义,最小表示法是用于解决字符串最小表示问题的方法。一算法简介:当一个字符串形成一个环的时候,要比较两个字符串是否相同就会变得很困难,因为你不知道对于第二个字符串来说,以哪个……

归并排序算法C/C++代码图文讲解

归并排序算法C/C++代码图文讲解归并排序算法是在分治算法基础上设计出来的一种排序算法,它可以对指定序列完成升序(由小到大)或降序(由大到小)排序,对应的时间复杂度为O(nlogn)。(1)算法思路归并排序算法实现排序的思路是:1.将……

算法是什么?

算法是什么?算法的出现,远远早于计算机,所以关于算法的知识点也非常多,大家不要急于求成,而本篇将从算法的概念、特征、评价以及复杂度四个方面详细介绍算法,希望关于算法的内容给大家一个清晰的认识,方便大家在日后的运用……

最短路径,弗洛伊德(Floyd)算法及C/C++代码实现

最短路径,弗洛伊德(Floyd)算法及C/C++代码实现1.算法简介弗洛伊德算法与迪杰斯特拉算法是公认的最著名的两种最短路径求解算法,接下来介绍弗洛伊德算法,弗洛伊德算法的思路是:首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值。d[i][j]表示从……

反演变换的性质

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