码迷,mamicode.com
首页 >  
搜索关键字:欧几里德    ( 418个结果
【学习总结】数学-欧几里德定理
描述 欧几里德算法 别名:辗转相除法 用途:计算两个正整数a,b的最大公约数 欧几里德拓展算法 扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足等式: ax+by=gcd(a,b)=d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。 代码 C++ 欧几里德LL gcd (LL a, LL b) { ret...
分类:其他好文   时间:2014-07-03 16:20:26    阅读次数:198
算法8-7:最短路径接口
最短路径问题就是给定一个图,这个图中的边是有方向和权重的。求s到t的最短路径。 最短路径问题其实分为很多种。按照起点和终点来分,可以分为: 从一个顶点到另一个顶点 从一个顶点到其他所有顶点 从所有顶点到所有顶点 按照边的权重来分可以分为: 非负权 任意权 欧几里德权 按照是否有环可以分为 ...
分类:其他好文   时间:2014-06-25 08:36:29    阅读次数:149
算法8-6:最小生成树研究现状
目前已经介绍了Kruskal和Prim算法,他们的复杂度一个是E logE一个是E logV,那么有没有复杂度为E的算法呢?理论上是可能的,但是目前还没有发现该算法。下图是最小生成树算法的发展过程。 从图中可以看到复杂度越來越接近E。 最小生成树的应用 欧几里德最小生成树 问题描述:给定一系列点的坐标,求包含所有点...
分类:其他好文   时间:2014-06-21 20:35:44    阅读次数:368
求解一元线性同余方程组模版
解法:直接上模版。 扩展欧几里德的模版: typedef long long LL; LL ex_gcd(LL a,LL b,LL &x,LL &y) { if(b==0) { x=1; y=0; return a; } LL d=ex_gcd(b,a%b,x,y); LL t=x; x=y;...
分类:其他好文   时间:2014-06-08 16:56:35    阅读次数:228
双调欧几里德旅行商问题
双调欧几里得旅行商问题是一个经典动态规划问题。《算法导论(第二版)》思考题15-1和北京大学OJ2677都出现了这个题目。 旅行商问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。这个解的一般形式为NP的(在多项式时间内可以求出) J.L. Bentley 建议通过只考虑双调旅程(bitonictour)来简化问题,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后...
分类:其他好文   时间:2014-06-05 04:28:09    阅读次数:220
求最大公约数和最小公倍数
CSDN链接两个自然数的积等于这两个数的最大公约数与最小公倍数的积。求最大公约数的方法:1、辗转相除法:辗转相除法又称为欧几里德算法其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)当b==0时,gcd(a,b)中的a即为最大公...
分类:其他好文   时间:2014-05-26 11:19:49    阅读次数:263
uva 10104 Euclid Problem (数论-扩展欧几里德)
uva 10104 Euclid Problem (数论-扩展欧几里德) 题目大意: 已知 A 和 B , 问你 A*X+B*Y=GCD(A,B)的 X,Y解。 解题思路: 非常裸的拓展欧几里德算法。 拓展欧几里德算法证明过程: 因为 B*X1+A%B*Y1=GCD(B,A%B) =GCD(A,B)=A*X+B*Y 所以 B*X1+(A-A/B*B)*Y1=A*X+B*Y A*Y1+B*(X1-A/B*Y1)=A*X+B*Y 于是: X=Y1,Y=(X1-A/B*Y1) 因此,得出( A*...
分类:其他好文   时间:2014-05-26 05:53:55    阅读次数:297
Modified LCS (扩展欧几里德)细写了对这个算法思路的理解
题目:Modified LCS 为过此题去仔细研究了下扩展欧几里德算法,领悟了一些精华。 模板为: void gcd(ll a, ll b, ll& d, ll& x, ll& y) { if(!b) {d = a; x = 1; y = 0;} else{ gcd(b, a%b, d, y, x); y -= x*(a/b);} } 这里算出来的x,y是对于方...
分类:其他好文   时间:2014-05-23 00:26:20    阅读次数:377
poj 1061 青蛙的约会(拓展欧几里德)
Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面...
分类:其他好文   时间:2014-05-22 17:35:34    阅读次数:214
POJ 2142 The Balance
SOL : 扩展的欧几里德,  ax+by==c   x=x0+b/d*t; y=y0-a/d*t; 求|x|+|Y|的最小值 可以发现: |x0+b/d*t| 单调递增      |y0-a/d*t| 单调递减  因为 a>b,所以就是说函数是凹的,先减小后增大。 显然  当y0-a/d*t==0的时候  |x|+|Y| 最小值就在那附近。 枚举几个值就能找到。 #in...
分类:其他好文   时间:2014-05-21 09:25:41    阅读次数:290
418条   上一页 1 ... 39 40 41 42 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!