算法

线性DP图文实例讲解

线性DP,所谓线性DP,就是指我们的递归方程有一个明显的线性关系的,有可能是一维线性的,也可能是二维线性的。例题一:大盗阿福题目:阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有NN家店铺,每家店中都有一些现金。

动态DP实例讲解

一、简介有一类问题,它可以采用DP解决。但是,如果我们加入区间查询,单点修改甚至区间修改,普通DP望尘莫及。于是,动态DP就应运而生了。二、例题例题一:给定一个长度为n的序列,你需要维护两种操作:①查询一个区间的最大子段和;②单点修改(即将一个位置上的数改成另一个数)Solution首先,

DP优化(一)单调队列/单调栈优化实例讲解

一、什么是单调栈和单调队列?(1)单调栈从名字上就听的出来,单调栈中存放的数据应该是严格单调有序的,具有以下两个性质。1.满足从栈顶到栈底的元素具有严格的单调递增或单调递减性;2.满足栈的后进先出特性,即越靠近栈底的元素越早进栈。单调栈也分为单调递增栈和单调递减栈。

DP优化(二)斜率优化实例讲解

有一类DP状态方程,例如:dp[i]=min{dp[j]−a[i]∗d[j]}  0≤j<i,d[j]≤d[j+1],a[i]≤a[i+1]它的特征是存在一个既有i又有j的项a[i]∗d[j]。编程时,如果简单地对i和j循环,复杂度是O(n2)的。

DP优化(三)四边形不等式优化实例讲解

有一种DP可以写成四边形不等式,那么可以用一个优化来优化这种DP(一般是二维的,不加优化是O(n3))。如果a≤b≤c≤d,那么如果DP式子满足f(a,c)+f(b,d)≤f(b,c)+f(a,d),那么这就是一个四边形不等式。一、首先先看一道例题题目:有一群人要乘船,

什么是计算几何?

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

什么是数学?

一、什么是数学?数学是研究数量、结构、变化以及空间模型等概念的一门科学。二、数学的特点数学区别于其他学科的明显特点有三个:1.抽象性,2.精确性,3.应用的极端广泛性。三、数学的三个传统领域:1.研究数的理论的代数学,2.研究形的理论的几何学,

离散化算法实例讲解

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

字符串基础知识

一、什么是字符串?字符串就是多个只读字符组成的数组。为什么说是只读?只读是因为字符串的所有方法都不会改变原字符串,包括通过下标修改,字符串依旧是保持原样。varstr="abcd"console.log(str)//"abcd"str[0]="c"console.log(str)//"abcd"为什么

C语言标准库中的字符串

一、字符串操作<string.h>size_tstrlen(charconst*s);注意:返回值类型size_t是无符号类型,和int进行运算或比较时需要注意;char*strcpy(char*dst,charconst*src);将src复制到dst,