- 博客(6)
- 收藏
- 关注
原创 Biorhythms
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 141712 Accepted: 45545 DescriptionSome people believe that there are three cycles in a person’s life that start the d
2018-02-05 14:01:45 420
原创 Sumdiv
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 24296 Accepted: 6022 DescriptionConsider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. D
2018-02-04 20:15:17 379
原创 青蛙的约会
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 122543 Accepted: 26028 Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事
2018-02-04 10:52:34 215
原创 扩展欧几里得求解线性同余方程
求解ax+by=c之前首先要知道一个定理。 定理1:对于方程a*x+b*y=c,该方程等价于a*x≡c(mod b),有整数解的充分必要条件是: c%GCD(a,b)=0。 根据定理1,对于方程a*x+b*y=c,我们可以先用扩展欧几里得算法求出一组x0,y0,也就是a*x0+b*y0=GCD(a,b),然后两边同时除以GCD(a,b),再乘以c。这样就得到方程a*x0*c/GCD(a,b)+
2018-02-03 21:00:29 668
原创 扩展欧几里得
扩展欧几里得算法是用来再已知(a,b)时,求解一组整数解使得a*x+b*y=gcd(a,b)。 根据数论解一定存在(gcd(a,b)|gcd(a,b))。 首先: 当b=0时,gcd(a,b)=a,x=1,y=0。 根据欧几里得gcd(a,b)=gcd(b,a%b)。 所以gcd(a,b)=a*x+b*y。gcd(b,a%b)=b*x+a%b*y。 a%b=a-[a/b]*b ([x]为
2018-02-03 15:22:32 372
原创 欧几里得二进制优化
首先,欧几里得又叫辗转相除法,gcd(a,b)=gcd(b,a%b)。证明略。int gcd(int x,int y){ return y==0?x:gcd(y,x%y);}如果想进一步提高GCD的效率,可以通过不断去除因子2来降低常数。 若x=y,则GCD(x,y)=x,否则: (1)若x,y均为偶数,则GCD(x,y)=2*GCD(x/2,y/2); (2)若x为偶数,y为奇数
2018-02-02 20:29:12 692
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人