首页 > 其他分享 >CRT & exCRT

CRT & exCRT

时间:2023-11-03 09:11:36浏览次数:42  
标签:CRT int ll exgcd times exCRT mod equiv

一、CRT

1. 前置芝士

  • exgcd

2. 应用范围

求解同余方程组:

\[\begin{cases}x\equiv a_1\mod m_1\\x\equiv a_2\mod m_2\\x\equiv a_3\mod m_3\\~~~~~~~~~~~~~\vdots\\x\equiv a_k\mod m_k\end{cases} \]

其中 \(~m_1,m_2,m_3,\cdots,m_k~\) 两两互质

3. 算法原理

考虑构造一组解:

记\(~M = \prod\limits_{i = 1} ^k m_i~\),\(~M_i = \frac M {m_i}~\),\(~t_i = {M_i}^{-1} \mod m_i~\)

那么我们可以构造一个解:

\[x = \sum\limits_{i = 1}^{k} a_i\times M_i \times t_i \]

为什么是对的呢?

我们考虑对第\(~j~\)个同余方程:

除了\(~M_j~\),其他的\(~M_i~\)都有\(~m_j~\)这个因子,即可得到

\[(x = \sum\limits_{i = 1}^{k} a_i\times M_i \times t_i)\equiv a_j\times M_j\times t_j\mod m_j \]

又因为\(~M_j\times t_j \equiv 1 \mod m_j~\)

\[x \equiv a_j\times M_j\times t_j\equiv a_j \mod m_j \]

4. 代码实现

const int NN = 1e5 + 8;
int k;
int a[NN],m[NN];

ll exgcd(ll a,ll b,ll &x,ll &y){
	if(b == 0){return x = 1,y = 0,a;}
	exgcd(b,a%b,x,y);
    ll z = x;
	x = y;
	y = z - y * (a / b);
}
ll inv(ll a,ll mod){
	ll x = 0,y = 0;
	exgcd(a,mod,x,y);
	return (x % mod + mod) % mod;
}//exgcd求逆元

int main(){
	scanf("%d",&k);
	ll M = 1;
	for(int i = 1; i <= k; ++i) scanf("%d%d",&m[i],&a[i]),M *= m[i];
	ll ans = 0;
	for(int i = 1; i <= k; ++i){
		ll Mi = M / m[i],invMi = inv(Mi,m[i]);
		ans += a[i] * Mi * invMi;
	}
	printf("%lld",ans % M);
}

二、exCRT

咕咕咕

标签:CRT,int,ll,exgcd,times,exCRT,mod,equiv
From: https://www.cnblogs.com/rickylin/p/17766055.html

相关文章

  • RecureCRT连接VMware虚拟机Centos7及网络配置
    1.确认物理机ip地址2.打开VMware,点击网络适配器并且选择NET模式3.打开WMware,点击左上角编辑,虚拟网络编辑器,设置子网ip和子网掩码 4.设置好之后点击上图中的NET设置,查看网关IP5.打开并进入虚拟机,配置网络信息,输入如下命令:vim/etc/sysconfig/network-scripts/ifconfig-e**......
  • EEA与CRT
    Public-KeyCryptographyEEA拓展欧几里得算法算法实现#include<bits/stdc++.h>usingnamespacestd;intt1,t0,q,tem;inteea(inta,intm){//a>mif(a==0||m==0)returnt0;else{q=a/m;tem=m;m=a%m;a=tem;tem=t1......
  • Rockchip RK3399 - DRM crtc基础知识
    一、LCD硬件原理1.1CRT介绍CRT是阴极射线管(CathodeRayTube)的缩写,它是一种使用电子束在荧光屏上创建图像的显示设备。CRT显示器在过去很长一段时间内是主流的显示技术,现已被液晶显示屏或其他新兴技术所替代。在CRT显示器中,扫描电子束从左到右、从上到下移动,照亮屏幕上的荧光......
  • Windows 10 VS2015旧项目缺少MFC42D.DLL, MFCD42D.DLL, mfco42d.dll, MSVCP60D.DLL和M
    文章目录问题解决参考问题在Windows10中的VS2015找开旧项目,由于缺少MFC42D.DLL,MFCD42D.DLL,mfco42d.dll,MSVCP60D.DLL和MSVCRTD.DLL,无法调试并运行程序,进行了解决。解决下载MFC42D.DLL,MFCD42D.DLL,mfco42d.dll,MSVCP60D.DLL和MSVCRTD.DLL这些DLL文件,旧系统中是可以放在......
  • SecureCRT通过脚本实现自动化登录
    1、配置登录主机名、用户和密码 2、配置登录后操作脚本目录 3、vbs操作脚本如下(crt也支持python)#$language="VBScript"#$interface="1.0"crt.Screen.Synchronous=TrueSubMain crt.Screen.Send"[email protected]"&chr(13) if(crt.Screen.Wait......
  • SecureCRT完美配色方案
    主要内容原文下载安装SecureCRT调整配色以及其他参数效果图1效果图2前提条件下载SecureCRT链接:https://pan.baidu.com/s/1Rx9grLvuyEZgFrF8CXX38w提取码:3fqy  安装完毕后进入配置界面 Options->GlobalOptions->General->Default......
  • 【模板】数论基础:exGCD,exCRT,inverse,Lucas,BSGS,primitive root
    7.29数论WIP\(a\equivb\pmodp\Rightarrow\frac{a}{d}\equiv\frac{b}{d}\pmod{\frac{p}{d}},d=\gcd(a,b,p)\)。exGCD若\((a,b)=1\),则\(0\leqx<b\),\(ax\bmodb\)互不相同,有一个是\(1\)。证明:\(ax_1\equivax_2\pmodb\)则\((x_1-x_2)a|b\),因为......
  • OCS无法启动,api-ms-win-crt-runtime-l1-1-0.dll丢失
    简介:win7sp1vl版,安装ocsagent2.10后无法打开,提示api-ms-win-crt-runtime-l1-1-0.dll丢失一:VC经查是VC2015没有安装。二:下载DownloadVisualC++RedistributableforVisualStudio2015fromOfficialMicrosoftDownloadCenter根据系统版本装一下,重启即可解决问题。......
  • SecureCRT 9.4发布啦!看看有哪些新功能吧!
    导读SecureCRT非常适合安全连接到运行Windows、UNIX和VMS的远程系统。SecureCRT支持通过Xmodem、Zmodem、Ymodem、Kermit和SFTP进行安全文件传输。背景SecureCRT是一款高度可定制的终端仿真器,支持Secure Shell (SSH)以及Telnet、Telnet/TLS和串行协议......
  • 拓展中国剩余定理(excrt)
    由于exCRT完美的平替了CRT的全部功能,故不再详细复习CRT的相关内容.考虑如下同余方程组,\[\begin{cases}x\equiva_1\pmod{m_1}\\x\equiva_2\pmod{m_2}\\\end{cases}\]展开得,\[a_1+k_1\timesm_1=a_2+k_2\timesm_2\]\[\Rightarrowk_1\timesm_1-k_2\ti......