传送门

解题思路

扩展 $crt​$,就是中国剩余定理在模数不互质的情况下,首先对于方程

​     $\begin{cases} x\equiv a_1\mod m_1\\x\equiv a_2\mod m_2\end{cases}$

来说,可以将其写为:

$\begin{cases} x=k_1*m_1+a_1\\x=k_2*m_2+a_2\end{cases}$

然后联立方程:

​     $k_1*m_1+a_1=k_2*m_2+a_2$

$\Leftrightarrow -k_1*m_1+k_2*m_2=a_1-a_2$

a这样的话形式就很像$exgcd$ 了,可以$exgcd$求出$k_1'*m_1+k_2'*m_2=gcd(m_1,m_2)$的$k_1'$了,然后若$(a_1-a_2)\%gcd(m_1,m_2)\neq 0$,则无解。然后让方程两边同时乘$(a_1-a_2)/gcd(m_1,m_2)$,就可以求出$k_1$了,最后再带入原式可以求出$x$的值,这个$x$记为$x_0$ ,即为满足上面两个方程的一个解,然后将这两个方程

合并成一个方程:$x\equiv x_0\mod lcm(m_1,m_2)$,之后就可以一直合并就行了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib> using namespace std;
const int MAXN = ;
typedef long long LL;
//typedef __int128 LL; inline LL rd(){
LL x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} int n;
LL a[MAXN],b[MAXN],M,R; LL slow_mul(LL x,LL y,LL mod){
LL ret=;
for(;y;y>>=){
if(y&) ret=(ret+x)%mod;
x=(x+x)%mod;
}
return ret;
} LL exgcd(LL a,LL b,LL &x,LL &y){
if(!b) {x=;y=;return a;}
LL now=exgcd(b,a%b,x,y);
LL t=x;x=y;y=t-(a/b)*y;
return now;
} int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) a[i]=rd(),b[i]=rd();
M=a[];R=b[];LL x,y,d,now;
for(int i=;i<=n;i++){
d=exgcd(M,a[i],x,y);
// if((R-r[i])%d!=0) puts("-1");
now=((R-b[i])%a[i]+a[i])%a[i];
x=slow_mul(x,now/d,a[i]);R-=M*x;
M=M*(a[i]/d);R=(R%M+M)%M;
}
printf("%lld",(R%M+M)%M);
return ;
}

LUOGU P4777 【模板】扩展中国剩余定理(EXCRT)的更多相关文章

  1. 中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结

    中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300035 前置浅讲 前 ...

  2. 扩展中国剩余定理 (exCRT) 的证明与练习

    原文链接https://www.cnblogs.com/zhouzhendong/p/exCRT.html 扩展中国剩余定理 (exCRT) 的证明与练习 问题模型 给定同余方程组 $$\begin{ ...

  3. 扩展中国剩余定理 (ExCRT)

    扩展中国剩余定理 (ExCRT) 学习笔记 预姿势: 扩展中国剩余定理和中国剩余定理半毛钱关系都没有 问题: 求解线性同余方程组: \[ f(n)=\begin{cases} x\equiv a_1\ ...

  4. 扩展中国剩余定理(EXCRT)快速入门

    问题 传送门 看到这个问题感觉很难??? 不用怕,往下看就好啦 假如你不会CRT也没关系 EXCRT大致思路 先考虑将方程组两两联立解开,如先解第一个与第二个,再用第一个与第二个的通解来解第三个... ...

  5. 扩展中国剩余定理 exCRT 学习笔记

    前言 由于 \(\{\mathrm{CRT}\}\subseteq\{\mathrm{exCRT}\}\),而且 CRT 又太抽象了,所以直接学 exCRT 了. 摘自 huyufeifei 博客 这 ...

  6. [Luogu P4777] 【模板】扩展中国剩余定理(EXCRT) (扩展中国剩余定理)

    题面 传送门:洛咕 Solution 真*扩展中国剩余定理模板题.我怎么老是在做模板题啊 但是这题与之前不同的是不得不写龟速乘了. 还有两个重点 我们在求LCM的时候,记得先/gcd再去乘另外那个数, ...

  7. P4777 【模板】扩展中国剩余定理(EXCRT)/ poj2891 Strange Way to Express Integers

    P4777 [模板]扩展中国剩余定理(EXCRT) excrt模板 我们知道,crt无法处理模数不两两互质的情况 然鹅excrt可以 设当前解到第 i 个方程 设$M=\prod_{j=1}^{i-1 ...

  8. P4777 【模板】扩展中国剩余定理(EXCRT)&& EXCRT

    EXCRT 不保证模数互质 \[\begin{cases} x \equiv b_1\ ({\rm mod}\ a_1) \\ x\equiv b_2\ ({\rm mod}\ a_2) \\ ... ...

  9. P4777 【模板】扩展中国剩余定理(EXCRT)

    思路 中国剩余定理解决的是这样的问题 求x满足 \[ \begin{matrix}x \equiv a_1(mod\ m_1)\\x\equiv a_2(mod\ m_2)\\ \dots\\x\eq ...

  10. 扩展中国剩余定理(EXCRT)学习笔记

    扩展中国剩余定理(EXCRT)学习笔记 用途 求解同余方程组 \(\begin{cases}x\equiv c_{1}\left( mod\ m_{1}\right) \\ x\equiv c_{2} ...

随机推荐

  1. spring配置hibernate的sessionFactory

    1.首先通过dataSource来配置sessionFactory <!--读入配置文件 --> <bean id="propertyConfigurer" cl ...

  2. USACO 2008 January Silver Telephone Lines /// 二分最短路 邻接表dijkstra oj22924

    题目大意: 一共有N (1 ≤ N ≤ 1,000)个电线杆,有P P (1 ≤ P ≤ 10,000)对电线杆是可以连接的, 用几条线连接在一起的电线杆之间都可相互通信,现在想要使得电线杆1和电线杆 ...

  3. QT5+Pylon

    VS+QT+Pylon:配置一下包含文件和libs,具体参考pylon说明文档. Windows下  Qtcreator+Pylon:建议把include和libs文件夹拷贝至工作目录,然后修改.pr ...

  4. Native API

    https://technet.microsoft.com/en-us/sysinternals/bb897447.aspx http://www.rohitab.com/discuss/topic/ ...

  5. log4j学习(二) 高并发logback

    logback中常用的appender有ch.qos.logback.core.ConsoleAppender和ch.qos.logback.core.rolling.RollingFileAppen ...

  6. sql server 的存储过程

    存储过程说白了就是一堆 SQL 的合并.中间加了点逻辑控制. 存储过程运行流程 创建不带参数存储过程 --创建存储过程 if (exists (select * from sys.objects wh ...

  7. vue SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

    在使用vue_cli时出现如下错误: 原因是  node  版本太低 应该升级

  8. bc 进制间转换

    我们通过bc的ibase和obase方法来进行进制转换 ibase是输入数字的进制,而obase就是输出数字的进制 两种方式进行转化 交互式的 ==注意:需要先设置obase== [root@dev ...

  9. Liunx下安装Oracle11g时Oracle Grid安装包下载向导

    下载Oracel 11g  Grid的安装包 Oracle官网 https://www.oracle.com 快捷访问路径:https://www.oracle.com/technetwork/dat ...

  10. luogu P1332 血色先锋队[bfs]

    题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ...