摘要: 算法分类合集 ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列双端队列可并堆左偏堆 二叉查找树Treap伸展树 并查集集合计数问题二分图的识别 平衡二叉树 二叉排序树 线段树一维线段树二维线段树 树状数组一维树状数组N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 阅读全文
posted @ 2018-05-06 00:16 slp0622 阅读(366) 评论(0) 推荐(0) 编辑
  2018年6月10日
摘要: ACM数据结构-并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数 阅读全文
posted @ 2018-06-10 16:10 slp0622 阅读(276) 评论(0) 推荐(0) 编辑
  2018年6月5日
摘要: Catalan 原理: 令h(0)=1,h(1)=1,catalan 数满足递归式: (其中n>=2) 另类递推公式: 该递推关系的解为: (n=1,2,3,...) 卡特兰数的应用实质上都是递归等式的应用 前几项为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 阅读全文
posted @ 2018-06-05 21:09 slp0622 阅读(7904) 评论(2) 推荐(2) 编辑
  2018年5月6日
摘要: ACM数论——欧几里得与拓展欧几里得 欧几里得算法: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 int gcd(int a,int b) { 阅读全文
posted @ 2018-05-06 16:35 slp0622 阅读(434) 评论(0) 推荐(1) 编辑
摘要: ACM数论——快速幂 快速幂定义: 顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 原理: 以下以求a的b次方来介绍: 把b转换成二进制数。该二进制数第i位的权为 例如 11的二进制是1011 11 = 2³×1 + 2²×0 + 阅读全文
posted @ 2018-05-06 16:05 slp0622 阅读(466) 评论(0) 推荐(0) 编辑
摘要: ACM数论——素数 素数定义: 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。例 子:2、3、5、7、11、13、17、19。(那时候还有一种说法叫做“质数”,但是就语言上来说,我觉得“素数”这种叫法和“合数”比 阅读全文
posted @ 2018-05-06 15:41 slp0622 阅读(414) 评论(0) 推荐(0) 编辑
  2018年5月5日
摘要: 小船过河 2018-05-05 20:44:00 链接:https://www.nowcoder.com/acm/contest/118/J来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 时 阅读全文
posted @ 2018-05-05 21:17 slp0622 阅读(422) 评论(0) 推荐(0) 编辑