题目大意:有一个二元一次方程,给出系数值和x与y的取值范围,求出来总共有多少对整数解。分析:有以下几点情况。1,系数a=0, b=0, 当c != 0的时候结果很明显是无解,当c=0的时候x,y可以为任意值,答案就是(x2-x1+1)*(y2-y1+1)2,系数a=0, b!=0, 先判断y的唯一解...
分类:
其他好文 时间:
2015-09-15 18:14:42
阅读次数:
175
Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个...
分类:
其他好文 时间:
2015-09-15 14:29:26
阅读次数:
163
分析:这个东西在数论里面应该叫做不定方程式,可以搜一下,有很精彩的证明,先求出来方程式的一组特解,然后用这组特解来求通解,但是求出来特解之后怎么求这些解里面的最小非负x值?我们知道 x = x0 + bt, 假设x=0, 也就是最小值, 那么 t = x0/(-b), x0+x0/(-b)*b就是最...
分类:
其他好文 时间:
2015-09-15 12:53:14
阅读次数:
125
DescriptionA Compiler Mystery: We are given a C-language style for loop of type for (variable = A; variable != B; variable += C) statement;I.e., a lo....
分类:
其他好文 时间:
2015-09-15 00:03:39
阅读次数:
248
扩展欧几里得,注意防溢出。http://poj.org/problem?id=2891 1 #include 2 using namespace std; 3 typedef __int64 LL; 4 const int maxn = 1e5 + 10; 5 6 LL a[maxn], r[m.....
分类:
其他好文 时间:
2015-09-13 18:42:18
阅读次数:
117
相信大家对欧几里得算法,即辗转相除法不陌生吧。代码如下:int gcd(int a, int b){ return !b ? gcd(b, a % b) : a;}而扩展欧几里得算法,顾名思义就是对欧几里得算法的扩展。切入正题:首先我们来看一个问题:求整数x, y使得ax + by = 1, ...
分类:
编程语言 时间:
2015-09-08 22:06:41
阅读次数:
197
1 欧几里得算法标准代码这个代码算的是符合a * x + b * y = gcd(a, b)的一组x, y, 同时返回了gcd(a, b)因为a * x1 + b * y1 = gcd(a, b) gcd(a, b) = gcd(b, a % b)那么a * x1 + b * y1 = gcd(b....
分类:
编程语言 时间:
2015-09-03 19:09:28
阅读次数:
166
扩展欧几里得算法是数论当中一种常用的算法,他可以用如下的姿势来表达:设a, b为不全为0的整数,则存在整数x和y,使得 gcd(a, b) = a*x + b*y。证明就略去。树上还有一个拉梅定理:用欧几里得算法计算两个正整数的最大公因子时,所需要的除法次数不会超过两个整数中较小的那个十进制数的倍数...
分类:
编程语言 时间:
2015-09-02 18:46:32
阅读次数:
307
Baby-Step-Giant-Step BSGS算法用于解决形如: A ^ x ≡ B ( mod C ) 的问题。 学这个算法前需要具备以下知识:快速幂取模、扩展欧几里得、同余知识、哈希表(也可以用map,不过更耗时).. 一. 普通的Baby-Step-Giant-S...
分类:
编程语言 时间:
2015-08-29 16:37:48
阅读次数:
428
// 扩展欧几里得做法; 1 #include 2 #include 3 #include 4 #include 5 #define ll long long 6 using namespace std; 7 8 ll ex_gcd(ll a,ll b,ll &x,ll &y)//扩展欧几里得(扩....
分类:
其他好文 时间:
2015-08-20 23:59:49
阅读次数:
476