ACM算法竞赛模板的个人总结.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ACM算法竞赛模板个人总结汇

数 学 4 最大公约数、最小公倍数 4 最大公约数——欧几里得算法O(n) 4 Stein算法O( log(max(a,b)) ) 4 最小公倍数: 4 素数相关 5 普通素数判断 5 筛法求素数[1,N] 5 二次筛法求素数[L,R] 6 Miller-Rabbin素数测试方法 7 算术基本定理的定义和性质: 8 同余方程[组] 乘法模逆元 中国剩余定理 9 扩展欧几里得,求一组解x,y,使得gcd(a,b) = d = a * x + b * y 9 扩展欧几里得,求所有解x,y,使得c = a * x + b * y 10 扩展欧几里得,求a关于n的逆元a^-1,使得a * a^-1 ≡ 1(mod n) 10 扩展欧几里得,求解x,满足同余方程组x ≡ Ri(mod Ai) 10 扩展欧几里得,求解x,满足高次同余方程A^x ≡ B(mod C) 11 中国剩余定理: 13 中国剩余定理最小非负数解的算法: 14 求解a*x + b*y = c的其中一组解,使得|x| + |y|尽可能小,若相等,则a|x| + b|y|尽可能小。 15 整数快速幂 16 矩阵快速幂 16 整数分解 18 试除法整数分解 18 筛法整数分解 18 PollardRho大整数分解 19 欧拉函数 22 直接欧拉函数 22 递推快速求欧拉函数 23 容斥原理 23 母函数 24 普通母函数 24 指数型母函数 25 其他相关 27 九余数定理:一个数N各位数字的和,对9取余等于这个数对9取余 27 给你一个奇数N,求1~N的奇数平方和: S = N*(N+1)*(N+2)/6 27 约瑟夫问题:有N个人,编号为1~N,按顺时针围成一个圈,每数k个人,就将这个人从圈中消除,问:最终只留下一个人的编号。 27 给你整数x和y的和以及x和y的积,是否能找到满足这两个式子的整数x和整数y。 29 Fibonacci数列大于40前四位数字 29 小于N的素数个数为π(N),π(N)的位数是多少? 29 Stirling公式:当N足够大时,N! = (N/e) * N * sqrt(2*pi*N)。 29 有N张卡,将N张卡分成若干不同的集合,集合不能为空。问:总共有多少种分法。 29 字符串 29 KMP 29 1. 既能做前缀又能做后缀的子串长度 30 2.求最短子串长度 30 3.求模式串pat在主串str中匹配次数 30 4.求N行M列的字符矩阵,最小的字符子矩阵的面积 30 5.求字符串s的循环前缀的长度和循环的次数 30 字典树 31 数据结构 33 并查集 33 树状数组 33 单点更新,区间求值:树状数组代表区间的和。 33 区间更新,单点求值:树状数组代表单个元素的变化 34 求逆序数: 数组Tree[i]表示数字i是否在序列中出现过,如果数字i已经存在于序列中,Tree[i] = 1,否则Tree[i] = 0。按序列从左到右将值为a的元素当作下标为a,赋值为1插入树状数组里,这时,比a的数个数就是i - Query(a)。将全部结果累加起来就是逆序数了。 35 二维树状数组: 36 线段树 36 单点更新 37 成段更新 43 区间合并 52 扫描线 54 图 论 58 图的五种种存储方式 58 方式1:邻接矩阵 58 方式2:前向星 58 方式3:邻接表——动态建表 59 方式4:邻接表——vector模拟链表实现 60 方式5:邻接表——链式前向星★ 61 拓扑排序 62 最小生成树 63 Kruskal算法: 63 Prim算法: 64 次小生成树 65 最小树形图 68 最近公共祖先LCA—Tarjan-LCA算法: 72 树的最小支配集、最小点覆盖、最大独立集 74 最小支配集:指从所有顶点中取尽量少的点组成一个集合,使得剩下的所有点都与取出来的点有边相连。顶点个数最小的支配集被称为最小支配集。这里用贪心法来求。 74 最小点覆盖:指从所有顶点中取尽量少的点组成一个集合,使得集合中所有的边都与取出来的点有边相连。顶点个数最小的覆盖集被称为最小点覆盖。 76 最大独立集:指从所有顶点中取尽量多的点组成一个集合,使得这些点之间没有边相连。顶点个数最多的独立集被称为最大独立集。 77 单源最短路径Dijkstra、BellmanFord、SPFA 77 Dijkstra算法: 77 BellmanFord算法: 79 SPFA算法: 81 多源最短路径Floyd、Floyd求最小环 84 Floyd算法:用来找出每对点之间的最短距离。图可以是无向图,也可以是有向图,边权可为正,也可以为负,唯一要求是不能有负环。 84 Floyd求最小环 85 K短路—A*+SPFA算法: 86 差分约束系统 89 强连通分量Kosaraju、

您可能关注的文档

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档