摘要:
什么是错排问题? 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 写信时将n封信装到n个不同的信封里,有多少种全部装错信封的情况? 错排公式: 拿信封问题举例子: 设 Fn 为n封信都装错的情况 ( 信封编号 与 信的编号 各不对应) 第一步, 手里有一封编号为 A 的 阅读全文
摘要:
简述 素数筛是数论的门票(签到工具)。 很多数论问题都需要用到素数筛。 本文将从作者自己的角度去阐述怎么写出欧拉线性筛。 素数筛的原理: 必定有一个 不小于所有质因数 ( ≤ ) 的质因数b 与 一个 大于等于所有因数 ( ≥ ) 的因数c ( c ≠ 1) 乘积等于 合数a 本文 最小 是 不小于 阅读全文
摘要:
因数是什么? 假如 a * b = c (a、b、c都是整数),a和b就是c的因数。 两个正整数相乘,那么这两个数都叫做积的因数。 例如: 6的因数是1,2,3,6 因数个数算法: 即任何一个大于1 的整数 n 都可以分解: n = pow(p1,a1) * pow(p2,a2) * pow(p3, 阅读全文
摘要:
八皇后问题: 搜索经典题。 难的点在于想出对角线的标记。 首先在棋盘上建立坐标(i,j); 可以放斜率为正(从左下到右上的直线 / 发现从左上到右下斜线排列的顺序,可以用 i + j 进行标记 0,1,2,3,4,5,6,7,8,9...12,13 那么类似的,我们可以推出 i - j 7.6,5, 阅读全文
摘要:
一.欧几里得算法 作用: 求最大公约数,求最小公倍数,化简分子分母 二.欧几里得拓展 一. 欧几里得算法: gcd(a,b) = gcd(b,a mod b) (b < a) 作用 (1) 用多个数的最大公约数求最小公倍数 (2) 求出最大公约数 化简分数。 例题链接 二. 拓展欧几里得算法: 阅读全文
摘要:
一. 普通的幂 二. 快速幂 模板 三. (一) 较慢的pow方法 外加 取余。 用到公式: f(x,y) = f(x,y/2) * f(x,y/2) * x ( y %2 = 1 and y >=1 ) 1 ( y = 0 ) f(x,y/2) * f(x,y/2) * x ( y %2 = 0 阅读全文
摘要:
汉诺塔的模板 递归做法(超时): 递推做法: 阅读全文
摘要:
一 。所有(Bidirectional)(双向)迭代器都支持: list、set、multiset、map、multimap == iter1 == iter2 != iter1 != iter2 ++ iter++ ++iter -- iter-- --iter iter1 == iter2 it 阅读全文