一次同余式的求解(扩展欧几里得)
来源:互联网 发布:java中多态的表现形式 编辑:程序博客网 时间:2024/05/17 16:13
大佬的解释
题目链接
一次同余式a*x%n=b的解的存在条件是b整除gcd(a,n)。
#include<cstdio>#include<cstring>#include<cmath>#include<queue>#include<iostream>#include<algorithm>#define LL long longusing namespace std;const int maxn=4e6+10;const int inf=0x3f3f3f3f;void exgcd(LL a,LL b,LL &x,LL &y)//一次同余式的求解{ if(!b) { x=1; y=0; return ; } exgcd(b,a%b,y,x); y-=a/b*x;}int main(){ LL a,b,c,d,e; while(~scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e)) { LL x=d-c,n=e,y=a-b; LL z=__gcd(x,n); if(y%z)//解存在的条件 printf("Impossible\n"); else { x/=z,y/=z,n/=z; LL p,q; exgcd(x,n,p,q);//(x*p和y同余于n) p*=y; p%=n; while(p<0) p+=n; printf("%lld\n",p);//p为最小满足的解 } }}
0 0
- 一次同余式的求解(扩展欧几里得)
- Poj 1061 青蛙的约会(扩展欧几里得解线性同余式)
- 求解一次同余式和中国剩余定理的模板
- 青蛙的约会(扩展欧几里得算法+不定方程求解)
- poj1061 青蛙的约会(扩展欧几里得算法求解同余方程)
- POJ 1061 青蛙的约会(数论水题+求解模方程+扩展欧几里得算法)
- poj1061 青蛙的约会(扩展欧几里得算法求解同余方程)
- UVA 12169 - Disgruntled Judge(扩展欧几里得,等式求解)
- poj 2115 (扩展欧几里得,二元不等式求解)
- 扩展欧几里得算法求一次同余方程的解(一个最小解的情况)
- 求解二次同余式
- 欧几里得、扩展的欧几里得算法
- 欧几里得、扩展的欧几里得算法 .
- 扩展欧几里得算法求解模线性方程
- Strange Way to Express Integers(扩展欧几里得+乘法逆元+中国剩余定理求解非互质的模线性方程组)
- 欧几里得+扩展欧几里得(理解)
- 数论之扩展欧几里得 (求解不定方程,线性同余,求解模的逆元) (但是加了一些自己的东西)
- 青蛙的约会(扩展欧几里得)
- shell笔记---变量扩展
- LinqToXML中的XmlDocument去除头部声明写法
- Python:eval的妙用和滥用
- opencv使用cmake链接库函数出现usr/bin/ld: cannot find -lopencv_终极解决方案
- fetch
- 一次同余式的求解(扩展欧几里得)
- 优秀的第三方常用控件
- Java中的动态代理技术
- maven assembly plugin使用
- Struts2拦截器的使用 (详解)
- 可点进来看看的一些Python基础
- JDk1.6中文版 math类
- springMVC+MyBatis+meaven整合的pom.xml配置文件
- Apache+Tomcat部署负载均衡(或集群)