算法理解
夜拾柒
In the future, there will be no retreat in horror.
展开
-
poj 3061 3320 尺取法的应用
SubsequenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10755 Accepted: 4455DescriptionA sequence of N positive integers (10 < N < 100 000), each of them less than or equal 1000原创 2016-02-29 22:49:51 · 351 阅读 · 0 评论 -
阶梯博弈(Stair Nim)
首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( >=1 )移到前面去..最后没有点可以移动的人输..如这就是一个阶梯博弈的初始状态 2 1 3 2 4 ... 只能把后面的点往前面放...如何来分析这个问题呢...其实阶梯博弈经过转换可以变为Nim..把所有奇数阶梯看成N堆石子..做nim..转载 2016-04-01 23:26:00 · 545 阅读 · 1 评论 -
动态规划简单理解
递归到动规的一般转化方法递归函数有n个参数,就定义一个n维的数组,数组的下标是递归函数参数的取值范围。数组元素的值是递归函数的返回值,这样就可以从边界值开始,逐步填充数组,相当于计算递归函数的逆过程。动规解题的一般思路1.将原问题分解成子问题a.把原问题分解成若干个小的子问题,子问题和原问题形式相同或类似,只不过规模变小了。子问题都解决了,原原创 2016-07-23 10:40:36 · 336 阅读 · 0 评论 -
STL之优先队列
优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了)。在一些定义了权重的地方这个数据结构是很有用的。先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部。priority_queue特别之处在于,允许用户为队列中存储的元素设置优先级。这种队列不是直接将新元素放置在队列尾部,而转载 2016-07-26 21:07:12 · 286 阅读 · 0 评论 -
关于欧几里得定理和拓展欧几里得定理的理解 续
前言在我大一刚开始ACM的时候,写过一篇关于欧几里得定理理解的博客,这几天因为再次用到欧几里得定理,所以又转回去看了看,感觉自己以前写的不是很清楚,所以决定再写一篇关于欧几里得定理以及拓展欧几里得定理的博客,并给出简单推导和证明。正文 在开始学习之前,我们介绍一下欧几里得定理的用途以及来源。欧几里得定理,又名辗转相除法,最早是由欧几里得提出来的,号称是世界上最早的算法。主要用原创 2017-05-12 11:11:44 · 1580 阅读 · 0 评论 -
裴蜀定理详解
在数论中,裴蜀定理是一个关于最大公约数或者最大公约式的定理。简介裴蜀定理(或贝祖定理,Bézout's identity)得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使a原创 2017-05-09 16:53:07 · 14484 阅读 · 2 评论 -
高阶矩阵快速幂
前言所谓的高阶矩阵快速幂就是在快速幂的基础上,结合矩阵运算计算矩阵的高次方的。它可以将朴素的o(n)的时间复杂度降为o(logn)。 我们先对原理进行简单的介绍,对于快速幂来说,如果要求x^n,一般我们会将幂n 表示成 n = 2^k,那么x^n = ((x^2)^2)......,对于每个数我们只需要做k次平方运算就行了,因此我们只需要将n表示成2的幂次和。 n = 2^k1原创 2017-05-09 22:40:51 · 1294 阅读 · 0 评论