算法/技巧
文章平均质量分 82
Jaya1989
Any
展开
-
欧几里德算法及其扩展欧几里德算法
欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b)证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数 假设d 是(b,a mod转载 2009-12-13 15:10:00 · 1315 阅读 · 0 评论 -
Floyd算法
定义 Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。 核心思路 通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。 从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造转载 2010-04-16 12:58:00 · 983 阅读 · 0 评论 -
深度优先搜索
深度优先搜索 (Depth-First Traversal)深度优先搜索的思想是尽可能深的搜索图,在<<算法艺术与信息学竞赛>>一书中提到:随机搜索就像是在慌乱之中找东西,因为你并不知道东西在哪,广度优先搜索则像是你的眼镜掉在地上之深度优先搜索 (Depth-First Traversal)深度优先搜索的思想是尽可能深的搜索图,在>一书中提到:随机搜索就像是在慌乱之转载 2010-04-14 20:00:00 · 1460 阅读 · 0 评论 -
0-1背包
问题描述:有N件物品和一个容量为V的背包。第i件物品的花费是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的转载 2010-04-14 19:33:00 · 740 阅读 · 0 评论 -
三种博弈问题
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如转载 2009-12-21 23:02:00 · 3047 阅读 · 0 评论 -
nim游戏/sg函数(博弈论)
Nim游戏 Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(一般转载 2009-12-17 18:57:00 · 2670 阅读 · 1 评论 -
A^B%C
提起 a^b%c 我们自然想起了模重复平方发,一个可以在 log(n)的时间复杂度内求出他的解。但是有些情况是不能这样简单的计算的:情况1:c 很大(c > =2^32)虽可在__int64 的表示范围内,但是如果两个这样的数平方必定会超过__int64的表示范围,就不能简单的乘了,这样可以有两种方法 方法一:如果可以分解为若干个互素的数(利用素数分解),且转载 2009-12-13 15:09:00 · 1688 阅读 · 0 评论 -
模取幂运算 (a^b mod c)
其思想是利用数学公式: (a * b ) mod c = (( a mod c) * b) mod c;首先把 b 转化成二进制如: b0 b1 b2 b3..... b31 即 b = b0*231 + b1*230+......+ b31;也就是把 ab = a ^ (b0*231 + b1*230+......+ b31) = [a(b0*2^31)] * [a(b1*2^30)]转载 2009-12-13 15:07:00 · 2016 阅读 · 0 评论 -
DFS BFS 回溯法
回溯法回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称转载 2009-12-13 15:12:00 · 2118 阅读 · 0 评论 -
魔方矩阵
http://baike.baidu.com/view/1905316.htm?fr=ala0_1对平面魔方的构造,分为三种情况:N为奇数、N为4的倍数、N为其它偶数(4n+2的形式)1. N 为奇数时(最简单): (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放: 按 45°方向行走,如向右上 每一个数存放的行比前一个数的行数减1,转载 2010-05-07 22:47:00 · 1687 阅读 · 0 评论