摘要: 拓展lucas定理转载自clove大佬 如果你不知道排列组合是什么东西...... 排列 A(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)! 组合 C(n,m)=A(n,m)/m!=n!/m!(n-m)! 基本公式 C(n,m)=C(n,n-m) C(n,m)=C(n-1,m 阅读全文
posted @ 2018-07-12 20:00 Kousak 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 已知a、b互质,求ax+by=1的一组解 扩展欧几里得算法: 假如b=1,由于gcd(a,b)=1,因此a=x=1 假如b≠1,不妨假设a=kb+r,并且我们已经求出了bx+ry=1的一组解(x0,y0) bx0+(a-kb)y0=1 ax1+by1=1 bx0+ay0-kby0=b(x 阅读全文
posted @ 2018-07-10 19:36 Kousak 阅读(3513) 评论(0) 推荐(0) 编辑
摘要: 1.定义 dfs序:每个节点在dfs深度优先遍历中的进出栈的时间序列 dfs序就是A-B-D-D-E-G-G-E-B-C-F-H-H-F-C-A 2.性质 为了便于理解,我们举个example 我们都知道它的dfs序A-B-D-D-E-G-G-E-B-C-F-H-H-F-C-A 我们可以发现B的出入 阅读全文
posted @ 2018-06-17 10:05 Kousak 阅读(4205) 评论(1) 推荐(5) 编辑
摘要: ST表是用来解决RMQ(区间最值)问题的算法 预处理O(nlgn) 查询O(1) 不支持在线查询 最小值可以合并但不支持分割 比如说我们知道[1,9]和[6,10]的最小值,我们可以知道[1,10]的最小值,但不能知道[6,9]的最小值 我们可以枚举以每个节点为起点经过k个节点的最值 但是预处理是O 阅读全文
posted @ 2018-06-17 06:30 Kousak 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 前置技能:动态开点线段树 题意: Sylvia 是一个热爱学习的女♂孩子。 前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。 Sylvia 所在的方阵中有 n*m 名学生,方阵的行数为 n ,列数为 m 。 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵 阅读全文
posted @ 2018-06-14 20:29 Kousak 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 一:定义 首先要明确线段树的定义,线段树是一颗树,而且是完全二叉树。同时线段树的每个节点表示一个区间,左子树和右子树分别表示这个区间的左半边和右半边。 即将区间[L,R]分解成[L,MID]和[MID+1,R],假设根的高度为1,树高为(n>1) 下图展示了区间[1,13]的分解过程 二:原理 上图 阅读全文
posted @ 2018-06-10 18:36 Kousak 阅读(483) 评论(0) 推荐(0) 编辑