[note]CRT&exCRT】的更多相关文章

中国剩余定理 别人的blog 假设现在有关于x的同余方程组(p1,p2均为质数) \(x=a_1\pmod {p_1}\) \(x=a_2\pmod {p_2}\) 可以转化成如下形式 \(x=a_1+k_1p_1\) \(x=a_2+k_2p_2\) 联立就有\(a_1+k_1p_1=a_2+k_2p_2\) 显然可以扩欧求一组特解,设为\(k_1',k_2'\) 那么全部的解可以表示成 \(k_1=k_1'+p_2t\) \(k_2=k_2'+p_1t\) 其中t为整数 回带就有\(x=a_…
[笔记] CRT & exCRT 构造法 求多组\(x \equiv r_i (\bmod d_i)\)的解,\(d_i\)互质 余数\((r_i = remainder)\),除数\((d_i=divisor)\) 我们想啊,如果我们能找到一个数 \(k1\equiv1(mod\text{ }3)\)是 \(5\) 和 \(7\) 的倍数 一个数 $k2\equiv1(mod\text{ }5) $是\(3\)和\(7\)的倍数 一个数 $k3\equiv1(mod\text{ }7) $是\…
前言: 中国剩余定理又名孙子定理.因孙子二字歧义,常以段子形式广泛流传. 中国剩余定理并不是很好理解,我也理解了很多次. CRT 中国剩余定理 中国剩余定理,就是一个解同余方程组的算法. 求满足n个条件的最小的x. 看起来很麻烦. 先找一个特殊情况:$m_1,m_2,...m_n$两两互质. 这个时候,构造$M=m_1*m_2*...m_n$; 令$M_i=M/m_i$; 所以,构造$n$个数,其中第$i$个数是除$i$之外的其他所有数的倍数,并且第$i$个数$mod m_i =1$ 即:$M_…
CRT从各种方面上都吊打exCRT啊...... 短,好理解... 考虑构造bi使得bi % pi = ai,bi % pj = 0.然后全加起来就行了. 显然bi的构造就是ai * (P/pi) * inv(P/pi). LL a = , p = MO - ; ; i <= ; i++) { a = (a + ans[i] * (p / mod[i]) % p * qpow(p / mod[i], mod[i] - , mod[i]) % p) % p; } exCRT: 是这样的,重新手推了…
\(crt,Chinese\ Remainder\ Theorem\) 概述 前置技能:同余基础性质,\(exgcd\). \(crt\),中国剩余定理.用于解决模数互质的线性同余方程组.大概长这样: \[ \begin{equation} \left\{ \begin{array}{lr} x\equiv a_1(mod\ m_1),\\ x\equiv a_2(mod\ m_2),\\ x\equiv a_3(mod\ m_3),\\ ......\\ x\equiv a_n(mod\ m_…
这玩意解决的是把同余方程组合并的问题. CRT的核心思想和拉格朗日插值差不多,就是构造一组\(R_i\)使得$\forall i,j(i \neq j) $ \[R_im_i = 1, R_im_j = 0 \] 有了思路后这玩意随便构造一下就出来了,式子里面出现了一些奇怪的逆元,所以要求模数互质 现在考虑扩展CRT,模数不互质了 本质思路是合并两个同余方程组 发现同余条件等价于\(x=k_1m_1+a_1=k_2m_2+a_2\) 怎么求出其中的一个\(k\)呢?其实也就是\(k_1m_1-k…
非扩展 用于求解线性同余方程组 ,其中模数两两互质 . 先来看一看两个显然的定理: 1.若 x \(\equiv\) 0 (mod p) 且 y \(\equiv\) 0 (mod p) ,则有 x+y \(\equiv\) 0 (mod p) 2.若 x \(\equiv\) b (mod p) 且 y \(\equiv\) 0 (mod p), 则有 x+y \(\equiv\) b (mod p) (0$\leq $b<p) 则整个方程组可以写为 b1 \(\begin{bmatrix}1…
其实呢,扩展中国剩余定理还有一种理解方式:就是你有一坨东西,形如:$A[i]\equiv B[i](mod$ $P[i])$. 对于这个东西,你可以这么思考:如果最后能求出一个解,那么这个解的增量一定是 $lcm(P[1],P[2].....).$ 所以,只要你能找到一坨 $P[i]$,使得它们的 $lcm$ 等于你想要的东西,你就可以用 $excrt$来解. p话扯完了,我们步入正题:假设没有障碍,有 $n$ 行 $m$ 列,那么答案即为 $C_{n+m}^{n}.$ 这个东西就代表你一共会走…
欧拉定理不要忘记!! #include <bits/stdc++.h> #define N 100000 #define ll long long #define ull unsigned long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; int array[10]={2,3,4679,35617}; ll mult(ll x,ll y,ll mod) {…
Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 List Luogu P4198 楼房重建 把高度化为斜率,然后就是个动态最长上升子序列的问题了,线段树上二分即可解决,而且可以做到\(O(n\log n)\) NOIP模拟赛10.24 实力翻车,T1主席树裸题切了,T2想了贪心+前缀和+二分正解,最后1min写完发现忘记判边界了炸到60,T3以为很难…