数论在acm竞赛中的应用1
来源:互联网 发布:判断char数组是否为空 编辑:程序博客网 时间:2024/05/16 17:32
总结一(数论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).
/* 第一篇就这样吧 *//*/*/*/*注释符占位*/*/*//
- 数论在acm竞赛中的应用1
- 数论在ACM中的应用
- 数论在ACM中的应用
- 数论在ACM中的几个常见应用结论
- 平面扫描思想在ACM竞赛中的应用(转载)
- map在竞赛中的应用
- java在ACM竞赛中的使用
- STL在ACM竞赛中的使用
- STL在ACM竞赛中的使用
- 3785 What day is that day? 浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
- java在acm中的应用
- Java在ACM中的应用
- java在ACM中的应用
- java在ACM中的应用
- java在ACM中的应用
- freopen在ACM中的应用
- Java在ACM中的应用
- JAVA在ACM中的应用
- 路由器大战之后是智能音箱大战?谷歌密谋发布新硬件对抗Amazon Echo
- PTA 6-2 二叉树的遍历(25 分) 25分代码 (数组实现层次遍历)
- Effective Java读书笔记-接口优于抽象类
- LeetCode 【Operating System】(一)
- 德勤预测:机器学习走向移动端成大势所趋,或将再掀行业新浪潮
- 数论在acm竞赛中的应用1
- JS之常见的几种输出方式
- Fibonacci数列问题
- [2017纪中10-27]查询 离散化+记忆询问+暴力剪枝
- hive语句执行顺序
- 猜数字小游戏
- 马云53亿增持菜鸟1000亿重塑物流 打的是什么战?
- 黄仁勋:GPU才是AI时代的摩尔定律
- 金秋十月,相约深圳!第五届CCF大数据学术会议即将开幕,不可错过的最强峰会,等待你的参与!