数论在acm竞赛中的应用1

总结一(数论1

摘要:不摘了,懂的就几个定理

关键词:欧几里得,扩展欧几里得,乘法逆元,同余膜,质数,二分快速幂,矩阵,待续

一,算法介绍

  1)欧几里得

Gcd(a,b)=Gcd(b,a%b)

注解:递归,循环也行,a=Gcd(a,0)

2) 扩展欧几里得

 Ax + By = D

A,B,D已知,当gcd(A,B)|D(即D%gcd(A,B)=0)时,x,y有整数解

I.典型同余模问题

问题链接:http://poj.org/problem?id=2115

题意:

for (variable = A; variable != B; variable += C)statement;

以上变量均为k位unsigned integer type int为32位),会给出A.B.C.k,让你求这个循环运行多少次,如果是死循环,输出Forever.

题解:

(A+x*C)%2^k=B

x有解,x即为答案;

x无解,输出Forever.

进行同余模转化:

(A+x*C)%2^k=B%2^k……①

Cx+y*2^k=B-A……②

②式就很明显了,若gcd(C,2^k)|B-A,则答案有解

怎么求这个解呢?可用如下算法求出一个特解

 

然后由特解求出通解:

x=x0+k(b/gcd(a,b));

y=y0+k(a/gcd(a,b));

这里的k为任意整数

最后,最小正整数解就是答案了

3)对分数取模需要用到的乘法逆元

定义:a*x % MO = 1 % MO

则称x为a关于MO的乘法逆元

所以:(b/a)%MO=b*x%MO

怎么求乘法逆元?

I.扩展欧几里得

II.费马小定理

如果MO是质数,x=a^(MO-2).

 

/* 第一篇就这样吧 *//*/*/*/*注释符占位*/*/*//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值