1 / 18

ACM/ICPC 中的数学

ACM/ICPC 中的数学. 李凤界 lfj_2@126.com. 数论 组合数学(计数问题) 博弈 概率 二、三分,积分. 预备代数知识. 代数结构 半群 群、子群、 Lagrange 定理 环、交换幺环. 快速幂乘. 半群上元素幂的 lgN 算法 计算 a^b%c 细节:在 32 位机器上如何计算 64 位整数相乘对 64 位整数取模? 矩阵快速幂乘 Fibnacci 数列 题目:字符串接力计数. 初等数论在 ICPC 中的几点. Euclid 辗转相除法 中国剩余定理 Euler 定理. 一些记号和结论.

vito
Download Presentation

ACM/ICPC 中的数学

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ACM/ICPC中的数学 李凤界 lfj_2@126.com

  2. 数论 • 组合数学(计数问题) • 博弈 • 概率 • 二、三分,积分

  3. 预备代数知识 • 代数结构 • 半群 • 群、子群、Lagrange定理 • 环、交换幺环

  4. 快速幂乘 • 半群上元素幂的lgN算法 • 计算a^b%c细节:在32位机器上如何计算64位整数相乘对64位整数取模? • 矩阵快速幂乘Fibnacci数列题目:字符串接力计数

  5. 初等数论在ICPC中的几点 • Euclid辗转相除法 • 中国剩余定理 • Euler定理

  6. 一些记号和结论 • 整除 :若a = b*q , b!=0 , 称b整除a,记作b|a • 同余:若c|(b-a),称a,b对c同余,记作a = b(mod c) • 除法定理:给定a,b两个整数,b> 0,则存在两个唯一的整数q,r,使得a = b*q+r,0<=r<b成立 • 唯一分解定理(标准分解):任一自然数n>0,均可唯一表示为素数之积:

  7. 最大公约数 • 最小公倍数 • 模m的剩余类环 • 缩系

  8. N个数的最大公约数给定N个数,求它们的最大公约数N个数的最大公约数给定N个数,求它们的最大公约数

  9. Euclid辗转相除法 • 给定a,b不全为0,求gcd(a,b) • 结论: • 复杂度O(lg(b)),可参看《算法导论》

  10. 青蛙的约会(浙江OI):长L的纬度线上,两只青蛙同时往西跳,规定从东往西为正方向建立坐标轴,两只青蛙的坐标分别为x和y,每一跳分别跳m米和n米,二只青蛙每一跳花的时间相同。问两只青蛙能否相遇?青蛙的约会(浙江OI):长L的纬度线上,两只青蛙同时往西跳,规定从东往西为正方向建立坐标轴,两只青蛙的坐标分别为x和y,每一跳分别跳m米和n米,二只青蛙每一跳花的时间相同。问两只青蛙能否相遇?

  11. 拓展Euclid算法 • 给定a,b不全为0,求d,x,y使得d=gcd(a,b)=a*x+b*y注:不唯一,调整下就可以作为另一组解 • 在Euclid算法上作一点手脚:设 a > b > 0 , a = b*q + c(除法定理)若d = x’*b + y’*c则d = y’*a + (x’ – q)*b

  12. exEuc最直接的实现(C++) • struct T{ • int d,x,y; • }; • T exEuc(int a,int b){ • if( b == 0)return T(a,0,0); • T tmp = exEuc(b,a%b); • return T(tmp.d, tmp.y, tmp.x-(a/b)*tmp.y); • }//自己证明求得的x,y是否小于max(a,b)

  13. 中国剩余定理 •      两两互素,求一次同余方程组             的解 • 只看n=2,构造 • POJ2891

  14. 质数表 • 质数表:保存素因子,标准分解 • 平方往外筛法(O(n*lglg(n)),复杂度未验证) • 线性筛法(O(n))

  15. Euler函数 • 小于n且与n互素的数的个数 • n为素数或素数幂时的 • 若 • 设n的标准分解为    

  16. Euler定理 • 若(a,n)=1,则 • Fermat小定理

  17. 多少个连续的8能整除给定的数m(网络赛) • 质数原根个数(贾怡@PKU) • 大素数检验的Miller-Rabin概率算法

  18. 单调函数(数列)二分求解如有序数列的查找方程的数值计算(二分法求数值解)次数(复杂度) :离散的:lg(n);方程的 • 单峰函数:三分法求峰值:dp优化等 • 数值积分基本概念Gauss型 • 外推法,Romberg数值积分

More Related