摘要: ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220404231437714-477751098.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220404232241520-189294814.png) ![](https://im 阅读全文
posted @ 2022-04-04 23:25 牛佳文 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 阶 #include<bits/stdc++.h> using namespace std; typedef long long LL; vector<int> pf; LL qmi(LL a, LL b, LL mod){ LL res = 1 % mod; while(b){ if(b&1) r 阅读全文
posted @ 2022-04-04 22:27 牛佳文 阅读(137) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220404211843057-1438145095.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220404212013344-924955656.png) 阅读全文
posted @ 2022-04-04 21:22 牛佳文 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 介绍 阅读全文
posted @ 2022-04-04 20:28 牛佳文 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 介绍 char s[N]; int n, m, x[N], y[N], c[N], rk[N], height[N], sa[N]; void get_sa(){ for(int i = 1; i <= n; i ++) c[x[i] = s[i]] ++; for(int i = 2; i <= 阅读全文
posted @ 2022-04-04 14:45 牛佳文 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 二维数点 1. 两条限制,x1=<x<=x2, y1=<y<=y2, 我们可以将其转化成单边界的问题 2. 对于上面类似的问题都可以转换成扫描线的形式,在该题中扫y,对x进行计数 3. 也有离线的思想 4. 事件的思想 5. vx离散化只需要离散点的x就行了,其他的不需要离散,其中lowber_bo 阅读全文
posted @ 2022-04-03 14:41 牛佳文 阅读(87) 评论(0) 推荐(0) 编辑
摘要: #存储方式 字符集太大了,可以采用hash开字典树 log时间查询任意两个字符串的最大前缀 建字典树,然后查询lca #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 5e5+10; st 阅读全文
posted @ 2022-04-02 12:20 牛佳文 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 启发式合并 每次将较小的集合合并到较大的集合 按深度合并 每次将深度较小的集合合并到深度较大的集合 阅读全文
posted @ 2022-04-01 23:08 牛佳文 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 二叉树 树 树的直径:最长的一条路径 树的中心:一条树的直径的中心点 树的中心的性质:是到所有到其他点路径最长的最小值,也就是直径的一半上取整 并且树的中心是唯一确定的(树的直径的长度是偶数的话唯二) 树的重心:选一个节点,当成根节点,他的儿子的子树大小最大值最小,这个节点就是重心 性质:当重心是根 阅读全文
posted @ 2022-04-01 17:57 牛佳文 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 扩展欧拉定理 当a和p互质的时候,a^(b%f(p)) = 1 (mod p) 当a和p不互质的时候,a^(b%f(p) + f(p)) = 1 (mod p), 其中需要满足b>=f(p) 一般可以写作a^min(b, b%f(p) + f(p)) (mod p) 题目链接:http://oj.d 阅读全文
posted @ 2022-03-31 15:12 牛佳文 阅读(39) 评论(0) 推荐(0) 编辑