摘要: lucas 定理用于求解模数很\(**\)的组合数求解,比如模小素数,会遇到不一定互质即没有逆元的情况。 \[C_{n}^m\equiv C_{n/p}^{m/p}C_{n\bmod p}^{m\bmod p} \]或者说 \((n_i,m_i)\) 是 \((n,m)\) 在 \(p\) 进制上的 阅读全文
posted @ 2023-08-12 22:56 Hypoxia571 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 求解高次同余方程。 给定整数 $a,b,p$,其中 $a\bot p$,求一个非负整数 $x$,使得 $a^x\equiv b\pmod{p}$ 因为 $a\bot p$,可以乱搞。 令 $t=sqrt(q)+1$,这里是 c++ 意义上的(雾。 然后搞一波 $x=it-j$,其中 $0\leq j 阅读全文
posted @ 2023-08-12 22:55 Hypoxia571 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 求矩形面积并,把矩阵竖着割开,累加。 矩形 $(x_1,y_1,x_2,y_2)$ 分成 $(x1,y1,y2,1)$ 和 $(x2,y1,y2,-1)$ 两条线,指的是,$x=x_i(y_1\leq x\leq y_2)$ 这样的线,土 $1$ 指的是加上或减去。 需要离散 flower,主要是 阅读全文
posted @ 2023-08-12 22:54 Hypoxia571 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 其实就是套娃。 一块一块维护。 ```cpp int tr[MN]; void add(int x,int y,int v) { for(int i=x; i<=n; i+=i&-i) for(int j=y; j<=m; j+=j&-j) tr[i][j]+=v; } int ask(int x, 阅读全文
posted @ 2023-08-12 22:53 Hypoxia571 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 费马小定理 $p$ 为素数且 $a\bot p$,有 $a^{p-1}\equiv 1(\mod p)$ 二次探测定理 $p$ 为素数且 $a^2\equiv1(\mod p)$,那么 $a\equiv\pm1(\mod p)$ 素数 $p$ 为素数,那么 $p=2$ 或者 $2\nmid p$ 把 阅读全文
posted @ 2023-08-12 22:53 Hypoxia571 阅读(4) 评论(0) 推荐(0) 编辑
摘要: ### 定义 俩矩阵 $A,B$,一个 $m*n$,一个 $n*u$ $C=A*B$ 计算公式为 $$ c[i][j]=\sum^{n-1}_{k=0}{a[i][k]*b[k][j]} $$ + 如果行数和列数相同的矩阵,可以称为方阵 + 如果方阵的对角线元素是 $1$,其余元素都是 $0$,那么 阅读全文
posted @ 2023-08-12 22:52 Hypoxia571 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 对于一个字符串 $S$, 可以随意把祂头部的放到尾部,这样弄出来最小的字符串 $\min\{S'\}$ 就是 $S$ 的最小表示( 通过这种方法,我们可以快速搞同构串 qwq 我们先 断环成链,那么就变成了找长度为 $n=|S|$ 的最小子串 我们用 $x$ 对应 $S[x],...,S[x+n-1 阅读全文
posted @ 2023-08-12 22:51 Hypoxia571 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 我们要查询 $A$ 是不是 $B$ 的子串 设 $g_i=\max\{j\}$,其中 $j0&&a[j+1]!=a[i]) j=g[j]; j+=(a[j+1]==a[i]), g[i]=j; } for(int i=1, j=0; i0&&(j==n||a[j+1]!=b[i])) j=g[j]; 阅读全文
posted @ 2023-08-12 22:51 Hypoxia571 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 我视界里最不珂爱的 SGT 代码我是真的自己写不动 所以这个是照着校 O勾 填空题目写的符合自己习惯的代码 我们要动态维护平面里的直线和诸如 $x=t$ 这类直线的信息 大概原理不难理解 就是权值线段树对应区间维护的是当前区间的最优解 最优解指的是在这个区间里面最上面的线段 可以完全碾压别的线段那一 阅读全文
posted @ 2023-08-12 22:51 Hypoxia571 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ~~详细介绍看心情可能会补~~ ~~放这就是想方便参考顺便水篇博客~~ 我们要维护一个数组的信息,但是我们也要查询历史信息 大概思想是不同线段树相同的部分共用点 每次修改都复制原来点再进行修改,这样肯定不冲突 通过记录不同版本根节点编号来做索引 其实写起来跟普通线段树的区别就是修改的时候需要重新建点 阅读全文
posted @ 2023-08-12 22:50 Hypoxia571 阅读(4) 评论(0) 推荐(0) 编辑