记
有些东西特别爱忘,所以在这写一下。
EXCRT#
首先会了 EXCRT 就可以不用会 CRT 了,感觉 EXCRT 或许好会。
有线性同余方程组:
推导解法。
取出前两个式子,可以表示成:
这样移项处理成:
设 ,那么有:
可以 exgcd 解出 ,注意是在 意义下的。
之后任意解可以写作 。
代回去:
改写后是:
于是合并成了:
讲真这个推导过程我学了快两年第一次看。
点击查看代码
inline ll mul(ll A,ll B,ll P){
ll res=0;
while(B){
if(B&1) res=(res+A)%P;
A=(A+A)%P;
B>>=1;
}
return res;
}
ll exgcd(ll A,ll B,ll &X,ll &Y){
if(!B){
X=1,Y=0;
return A;
}
ll D=exgcd(B,A%B,Y,X);
Y-=A/B*X;
return D;
}
int n;
ll a[maxn],b[maxn];
inline void EXCRT(){
ll A=a[1],B=b[1];
for(int i=2;i<=n;++i){
ll X,Y;
ll D=exgcd(B,b[i],X,Y),BD=b[i]/D;
X=(X%BD+BD)%BD;
X=mul(X,((a[i]-A)/D%BD+BD)%BD,BD);
ll tmp=BD*B;
A=(mul(X,B,tmp)+A)%tmp;
B=tmp;
}
printf("%lld\n",A);
}
Stirling 数的恒等式#
Hall 定理#
对于二分图 ,设左部点 的子集 的邻域 ,则二分图对左部点存在饱和匹配的充要条件是:
必要性:显然。
充分性:考虑对点数归纳,分两种情况讨论。
-
若存在 使得 ,那么删去 以及 ,如果存在一个 使得 ,那么 ,与题设不符。
-
否则对任意 都有 ,任选 钦定其匹配,并删去与 有关的边,之后仍满足 ,原因是每个点集最多变化 。
作者:SoyTony
出处:https://www.cnblogs.com/SoyTony/p/Notes.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】