摘要:基于前文对图和树的简单讨论,我们在这篇文章中将介绍有关图的最短路径的问题。 最短路径的原始模型非常简单,给出一个图G(V、E),其中边元素e都带有权值,寻找vi和vj之间的一条路径,是的该路径上边的权值之和最小。 基于这个最简单的模型,最短路径问题细分还会有好多种类,比如图G是否有向?权值是否有负值
阅读全文
摘要:通过上文关于介绍动态规划的文章,我们知道,作为一种思想,在用动态规划解决问题的时候在不同的情景中有着灵活的变化,动态规划中一些经典的模型,笔者将会专门开文章来讨论,而这篇文章,用来记录一些利用动态规划解决的杂例。 我们直接来看一个问题。(Problem source : Light OJ 1047)
阅读全文
摘要:通过先前在《动态规划——背包问题》中关于动态规划的初探,我们其实可以看到,动态规划其实不是像凸包、扩展欧几里得等是具体的算法,而是一种在解决问题中决策的思想。在不同的题目中,我们都需要根据题设恰到好处的把整个过程分割成小的状态,然后找到对应的状态转移方程,尽管都是这个过程,但是有时候条件稍微一遍,我
阅读全文
摘要:在初等代数中,我们熟悉二元一次方程组的求法,但是很多时候,我们有n个变量,却没有n个彼此独立的方程,因此我们是无法给出方程组的唯一解的,即其解情况是不确定的。 定义1:a,b,c是整数,ab != 0,那么形为ax + by = c的方程成为二元一次不定方程。 定理1:设d = gcd(a,b),如
阅读全文
摘要:这篇文章我们将介绍数论当中几个很重要的定理:威尔逊定理、费马小定理以及欧拉定理,并讨论一些基于这些定理的算法。 首先我们给出费马小定理:如果p是素数,并且gcd(a,p) = 1 , 那么有a^(p-1) = 1(mod p)。 而关于这个定理的证明,也是不难理解的。 在证明之前,我们先需要知道这样
阅读全文
摘要:今天开始进入了动态规划的专题学习。 动态规划(dynamic programming),是运筹学的一个分支,其主要用于寻找最优方案。说到最优方案,我们不禁要将其与一种最基本的算法——贪心算法,联系起来。事实上,正是由于这种共性,使得很多问题有着多解性。 百度百科中有着这样一句话:“20世纪50年代初
阅读全文
摘要: 同其他专题一样,在数论专题当中我也开了一篇“基础”文章,其实严谨的来说也不能算基础,其目的在于记录一些有关数论方面的一些理论性或者说模型化不是很强的问题。例如找规律、简单的模拟题之类。 那我们们来看这要一道问题。(Problem source : pku 2183) Descript
阅读全文
摘要:在学习快速幂的过程中,我们曾遇到过因子和函数σ(n),曾提及该函数是积性函数,不过当时并没有给出证明。在这篇文章中,我们将针对数论中的积性函数问题,讨论更多的模型。包括欧拉函数、和我们曾讨论过的gcd函数。 首先我们给出一些定义 定义1:定义在所有正整数上的函数成为算数函数。 定义2:算术函数f如果
阅读全文
摘要:我们探索某个领域的知识,无不怀揣的核弹级的好奇心与求知欲,那么,今天,我们就将开始对图论的探索。 观察一副《机械迷城》 的一处谜题。 不得不承认,《机械迷城》这款解密游戏难度远胜于《纪念碑谷》, 其中一个困难点就在于——《纪念碑谷》的目标是很明确的,但是《机械迷城》往往需要自己凭感觉设立目标。而这里
阅读全文
摘要:其实与计算几何中的最小圆覆盖问题很类似,凸包问题探究的是如何构造可以覆盖给定点集最小的凸多边形。 我们先从人脑的思维来分析一下这个问题,所谓凸包,起名字包含了两个关键的信息。 1.凸:这里所求作的是凸多边形,这是很关键的一点。因为在构造的时候可能会有下图的疑问。 右边的图的面积岂不是更小?但是我们还
阅读全文
摘要:密码学,是一门古老而又年轻的学科,在《模仿游戏》中Benedict Cumberbatch饰演的图灵,就是二战时期颇有造诣的密码学大师。虽然涉猎不深,但是笔者还是认为密码学同数论、组合数学一样,都是非常好的数学游戏,那么这篇文章,我们就来介绍一下一些简单的和数论有一定关联的加密方式。 最为古老的一种
阅读全文