摘要: 矩阵快速幂 先推出$T_n$与$F_n$的关系,再用矩阵快速幂求 $S_i=F_{i+2} 1$ $T_n=(F_1+2\times F_2+3\times F_3\dots+n\times F_n)\pmod m$ $\;\;\;\;\; =((F_1+F_2+F_3\dots+F_n)+(F_2 阅读全文
posted @ 2020-01-27 18:13 gzezZRY 阅读(166) 评论(0) 推荐(0) 编辑
摘要: $LaTex$ 将数学公式写在 之间,代表的是插入行内数学公式。 将数学公式写在 之间,会使公式独立成一行并强制居中。 $\left\vert a\right\vert$ $\lVert z\rVert$ $\infty$ $a\equiv b\pmod c$ $a\bmod b$ $\mid \n 阅读全文
posted @ 2020-01-17 17:10 gzezZRY 阅读(922) 评论(0) 推荐(0) 编辑
摘要: BSGS算法(Baby Step Giant Step) 拔山盖世算法/北上广深算法 先看一道同余题目: 已知a,p互质,求解$a^x\equiv b\pmod p$ 我们该怎么做呢? 设$m=ceil(\sqrt{p})$,$x=i\times m-j$,$j\in [0,m)$。(ceil为向上 阅读全文
posted @ 2020-01-16 16:13 gzezZRY 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 逐步满足法 举个例子来说: 已知$\begin{cases}a\equiv 3\pmod 5\\a\equiv 1\pmod 9\\a\equiv 7\pmod {16}\end{cases}$,求a 我们可以这样来想: 一、首先,先找到一个最小的数满足$a\equiv 3\pmod 5$,也就是3 阅读全文
posted @ 2020-01-15 11:25 gzezZRY 阅读(222) 评论(1) 推荐(0) 编辑
摘要: LCA题目 这题不就是改成三个点的LCA吗? 首先求出三个点中两两的LCA,如果有两个LCA相等,那么三个点的LCA就是另外那对点的LCA int fa1=lca(u,v),fa2=lca(v,w),fa3=lca(w,u); if(fa1==fa2)printf("%d ",fa3); if(fa 阅读全文
posted @ 2020-01-14 08:14 gzezZRY 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 非常明显的树状数组 什么是树状数组 顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。 树状数组可以解决什么问题 可以解决大部分基于区间上的更新以及求和问题。 树状数组和线段树的区别在哪里 阅读全文
posted @ 2019-12-28 10:38 gzezZRY 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 2-SAT问题模板 先看两道例题: 【模板】2-SAT 问题 满汉全席 在搞懂上面的题后,这题就并不难了。 最主要的就是跑tarjan和连边。 比如说:a,b为一个党派,c,d为一个党派,且a,c有仇,那么只能选a,d或b,c。也就是说要在a,d之间连一条边,在b,c之间连一条边。 上述操作完成后, 阅读全文
posted @ 2019-12-27 19:09 gzezZRY 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先LCA 如图 LCA(4,5)=8 LCA(10,16)=10 LCA(7,3)=4 求LCA主要算法有:RMQ,tarjan,倍增 RMQ 这种方法就是打表 O(n logn)预处理,O(1)回答 RMQ就是区间最值查询。 首先通过dfs求出每个点的深度 显然,两个节点的LCA不仅是两 阅读全文
posted @ 2019-12-25 13:48 gzezZRY 阅读(404) 评论(0) 推荐(0) 编辑