Acm icpc
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

ACM/ICPC 中的数学 PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Acm icpc

ACM/ICPC中的数学

李凤界

[email protected]


Acm icpc

  • 数论

  • 组合数学(计数问题)

  • 博弈

  • 概率

  • 二、三分,积分


Acm icpc

预备代数知识

  • 代数结构

  • 半群

  • 群、子群、Lagrange定理

  • 环、交换幺环


Acm icpc

快速幂乘

  • 半群上元素幂的lgN算法

  • 计算a^b%c细节:在32位机器上如何计算64位整数相乘对64位整数取模?

  • 矩阵快速幂乘Fibnacci数列题目:字符串接力计数


Acm icpc

初等数论在ICPC中的几点

  • Euclid辗转相除法

  • 中国剩余定理

  • Euler定理


Acm icpc

一些记号和结论

  • 整除 :若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,均可唯一表示为素数之积:


Acm icpc

  • 最大公约数

  • 最小公倍数

  • 模m的剩余类环

  • 缩系


Acm icpc

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


Euclid

Euclid辗转相除法

  • 给定a,b不全为0,求gcd(a,b)

  • 结论:

  • 复杂度O(lg(b)),可参看《算法导论》


Acm icpc

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


Euclid1

拓展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


Exeuc c

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)


Acm icpc

中国剩余定理

  •      两两互素,求一次同余方程组             的解

  • 只看n=2,构造

  • POJ2891


Acm icpc

质数表

  • 质数表:保存素因子,标准分解

  • 平方往外筛法(O(n*lglg(n)),复杂度未验证)

  • 线性筛法(O(n))


Euler

Euler函数

  • 小于n且与n互素的数的个数

  • n为素数或素数幂时的

  • 设n的标准分解为    


Euler1

Euler定理

  • 若(a,n)=1,则

  • Fermat小定理


Acm icpc

  • 多少个连续的8能整除给定的数m(网络赛)

  • 质数原根个数([email protected])

  • 大素数检验的Miller-Rabin概率算法


Acm icpc

  • 单调函数(数列)二分求解如有序数列的查找方程的数值计算(二分法求数值解)次数(复杂度) :离散的:lg(n);方程的

  • 单峰函数:三分法求峰值:dp优化等

  • 数值积分基本概念Gauss型

  • 外推法,Romberg数值积分


  • Login