GCD
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5454 Accepted Submission(s): 1957
Problem Description
Given 5 integers: a, b...
分类:
其他好文 时间:
2014-07-31 20:58:57
阅读次数:
177
操作1 的时候标记deng[rt]表示下面一段数都是与当前节点的值相同
下次操作2时直接对有deng标记的节点gcd更新
(可能还可以更简单)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#def...
分类:
其他好文 时间:
2014-07-31 20:52:17
阅读次数:
250
poj 1265 Areahttp://poj.org/problem?id=1265pick定理+叉积+欧几里德(gcd)题意:有一个单位长度为1的方格组成的区域,告诉你一个人在x,y轴上的一动距离,问这个人行走路线上的点的个数,最终围成区域的点个数,及面积。方法:显然用pick定理,首先通过叉积...
分类:
其他好文 时间:
2014-07-31 20:36:27
阅读次数:
198
欧几里得- -要分N种情况- -#include#includeusing namespace std;int gcd(int x,int y){if (y==0) return x;return gcd(y,x%y);}struct node{ int x,y; friend ...
分类:
其他好文 时间:
2014-07-31 16:18:27
阅读次数:
156
http://acm.hdu.edu.cn/showproblem.php?pid=1222苦了这么长时间终于又尝到点甜头了....T_T....开始还以为这道题又是约瑟夫环问题,再想想发现只要这两个数互质就行,也就是它们的最大公约数是1时就是NO 1 #include 2 int GCD(int ...
分类:
其他好文 时间:
2014-07-30 11:52:13
阅读次数:
204
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1026分析:简单的数位DP啦f[i][j]表示数字有i位,最高位的数值为j的windy数总个数那么f[i][j]=singma(f[i-1][k])(|j-k|>=2)那么对于1~x(假设x从高到...
这是SGU 102的一份题解题目要求找不大于N的自然数中与N互质的数,N的范围是1到10000. 由于N的范围小,可以用直接枚举的方法做,辗转相除求GCD。 但要考虑特殊情况:N=1时,1和它本身互质。 如果数据范围变大,如10^9,则不能用枚举。用分解质因数的方法做。用唯一分解定理: n>=2,设...
分类:
其他好文 时间:
2014-07-29 21:06:32
阅读次数:
233
之前已经完成了大整数的表示、绝对值的比较大小、取负值、加减法运算、乘法运算以及除法和余数运算。具体见我的主页前三篇博客(自己动手写Java 系列 )。
这篇博客添加求大整数GCD、扩展欧几里得算法和求Mod逆的算法。...
分类:
编程语言 时间:
2014-07-29 15:06:48
阅读次数:
399
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。
递归代码:
__int64 gcd(__int64 a,__int64 b)
{
return b==0?a:gcd(b,a%b);
}
扩展欧几里得
基本...
分类:
其他好文 时间:
2014-07-29 15:00:38
阅读次数:
431
对欧几里德不太熟悉,参考了网上的一些讲解又学习了一下利用扩展欧几里德算法求线性方程的一般过程:a*x + b*y = m令a1 = a/gcd(a,b) b1 = b/gcd(a,b) m1 = m/gcd(a,b)a*x + b*y = m两边同除以m1a*x/m1 + b*y/m1 = m/.....
分类:
其他好文 时间:
2014-07-29 11:58:06
阅读次数:
300