算法

什么是记忆化搜索?

首先大家要知道,记忆化搜索是动态规划的入门。什么是记忆化搜索?搜索的低效在于没有能够很好地处理重叠子问题;动态规划虽然比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈。记忆化搜索正是在这样的情况下产生的,它采用搜索的形式和动态规划中递推的思想将这两种方法有机地综合在一起,

什么是队列?队列的应用

什么是队列?队列中的数据也呈线性排列。虽然与栈有些相似,但队列中添加和删除数据的操作分别是在两端进行的,就和队列这个名字一样,把它想象成排成一队的人更容易理解。在队列中,处理总是从第一名开始往后进行,而新来的人只能排在队尾。队列是什么?如上就是队列的概念图,现在队列中只有数据Blue。

Python递归算法

我们在前面学习过递归函数,递归函数采用的就是递归算法,前面我们通过最常见的菲波那切数列去学习了递归函数,这一节我们再来详细了解一下递归算法。1.递归算法递归算法(英语:recursionalgorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。

什么是计算几何?

一、计算几何的引入计算几何是几何学的一个重要分支,也是计算机科学的一个分支,研究解决几何问题的算法。在现代工程与数学、计算机图形学、机器人学、VLSI设计、计算机辅助设计等学科领域中,计算几何都有重要应用。计算几何问题的输入一般是关于一组几何物体(如点、线)的描述;输出常常是有关这些物体相关问题的回答

字符串匹配实例讲解

本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。一、基本概念字符串匹配问题假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。

图的储存方式

图是一个好东西,能够使用图来模拟或解决很多生活问题,同时在各大比赛上都少不了有关于图的问题.图是关系与顶点与边的,那么我们该如何来存入图的信息呢?(1)直接存边我们开一个数组,数组里每个元素是图的一条边。其中存的每一条边都包含这些信息:顶点v与u,边的权值。

网络流常用小技巧拆点

拆点是一种图论建模思想,常用于网络流,用来处理点权或者点的流量限制的问题,也常用于分层图。一、什么是拆点?什么是拆点?拆点就是将一个点拆成入点和出点两个点,并在两个点之间建一条边。为什么要拆点?拆点是为了实现对点的限制。什么时候需要拆点?当题目中明确说明对点有限制或在实际应用中对点有限制时,

什么是后缀树?

说到后缀树,我相信很多人通过名字看出来树是一种结构形态,后缀树就是带后缀的结构,后缀,顾名思义,甚至通俗点来说,就是所谓后缀就是后面尾巴的意思。比如说给定一长度为n的字符串S=S1S2..Si..Sn,和整数i,1≤i≤n,子串SiSi+1...Sn便都是字符串S的后缀。

C/C++如何加速输入输出效率(上)

1.简介遇到大数据时,往往读写文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,有很多案例中提供几个数据,却在后台测评却提供了近千,近万的数据量是常事,而很多人会发现,明明算法正确的问题,

什么是数值积分?

一、什么是数值积分?数值积分是计算定积分数值的方法和理论。在数学分析中,给定函数的定积分的计算不总是可行的。许多定积分不能用已知的积分公式得到精确值。数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。借助于电子计算设备,数值积分可以快速而有效地计算复杂的积分。