1.欧几里得算法 求解最大公约数,时间复杂度在O(log max(a,b))以内,可以看出,辗转相除法是非常高效的 2.扩展欧几里得算法 求解方程a*x+b*y=gcd(a,b),a、b、x、y均为整数,时间复杂度和辗转相除法是相同的,函数返回gcd(a,b)。 3.素数测试 其中map第一个int ...
分类:
其他好文 时间:
2018-08-27 16:06:49
阅读次数:
197
exgcd入门以及同余基础 gcd,欧几里得的智慧结晶,信息竞赛的重要算法,数论的...(编不下去了 ...
分类:
其他好文 时间:
2018-08-23 22:10:17
阅读次数:
1446
#include #include #include using namespace std; #define ll long long ll gcdd(ll a,ll b,ll &x,ll &y) { if(b==0) { x=1; y=0; return a; } ll res=gcdd(b,a... ...
分类:
其他好文 时间:
2018-08-23 12:05:01
阅读次数:
138
辗转相除法 1.求最大公约数 问题:线段上格点的个数 问题描述:给定平面上的两个格点P1=(x1,y1)和P2=(x2,y2),线段P1P2上,除P1和P2以外一共有几个格点? 限制条件:-109≤x1,y1,x2,y2≤109 分析:答案显然,是|x1-x2|和|y1-y2|的最大公约数-1。那么 ...
分类:
其他好文 时间:
2018-08-13 12:05:36
阅读次数:
163
<题目链接> 题目大意: Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisfy X*a + Y*b = 1. If no such answer pr ...
分类:
其他好文 时间:
2018-08-12 15:35:49
阅读次数:
315
题目大意:一个双六上面有向前 向后无限延续的格子, 每个格子都写有整数。其中0号格子是起点,1号格子是终点。而骰子上只有a,b,-a,-b四个整数,所以根据a和b的值的不同,有可能无法到达终点掷出四个整数各多少次可以到达终点呢?如果解不唯一,输出任意一组即可。如果无解 输出-1 思路:这道题用数学方 ...
分类:
编程语言 时间:
2018-08-06 11:41:02
阅读次数:
141
//方法一: 扩展欧几里得 (求逆元 调用mod_reverse函数) // 限定条件 a n 互质 log(n) // @a 数 // @n 模数 inline long long mod_reverse(long long a,long long n) { long long x,y,d=ext... ...
分类:
其他好文 时间:
2018-08-05 14:26:00
阅读次数:
486
题目给我们的输入数值都是序列中的单数项,我们已知递推公式xi=(aXi-1 + b)mod10001, 所以我们可以将X2表示为X2=(aX1 + b)mod10001,将X3表示为X3=(aX2 + b)mod10001 然后将X2的式子带入到X3中得:X3=(a(aX1 + b)mod10001 ...
分类:
其他好文 时间:
2018-08-04 19:01:17
阅读次数:
149
问题 C: 磨刀 题目描述 磨刀是一个讲究的工作,只能在n℃下进行,所以我们首先要做的就是把刀的表面温度提升到n℃。处理刀身温度有两种方式: 1.淬火,使刀身温度提高a℃; 2.冰敷,使刀身温度降低b℃。宝儿姐想知道,能否经过多次处理,使得刀身温度达到n℃。 输入 每组输入包含一行:包含三个非负整数 ...
分类:
编程语言 时间:
2018-08-01 11:58:46
阅读次数:
118
组合数取模——————卢卡斯定理 //组合数取模——————卢卡斯定理 //扩展欧几里得求逆元 int exgcd(int a,int b,int &x,int &y)//扩展欧几里得 { if(b==0) { x=1;y=0;return a; } else { int gcd=exgcd(b,a ...
分类:
其他好文 时间:
2018-07-31 13:34:22
阅读次数:
118