首页 > 其他分享 >扩展欧几里得_逆元

扩展欧几里得_逆元

时间:2023-04-04 23:15:37浏览次数:43  
标签:gcd 求解 int 欧几里得 扩展 逆元 y1 ax x1

扩展欧几里得

三种做法

1.求解ax+by=gcd(a,b) ax+by=b*x1+a%b * y1 ==> x=y1;y=x1-a/b*y1; 若b=0时,x=1,y=0;
2.求解 ax+by=c 求解出 a*x0+b*y0=d (若d|c则优解,不可整除则无解) 然后 x=x0*c/d , y=y0*c/d 只是一个特解,不一定是最优解, 可以求解齐次方程的通解,然后可以
3.求解 a*x≡b(mod m) 解法:求解 ax-km=b 解出 a*x0+b*y0=d 然后同上,若求解最小 x 时,将求解得出的 x0=x0%(b/gcd) (使等式ax-km=b同时除以b/gcd)

例题_acwing_五指山

#include<iostream>

using namespace std;

int exgcd(int a,int b,int &x,int &y)
{
    if(b==0)
    {
        x=1,y=0;
        return a;
    }
    int gcd,x1,y1;
    gcd=exgcd(b,a%b,x1,y1);
    x=y1;
    y=x1-a/b*y1;
    return gcd;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,d,x,y,x1,y1;
        scanf("%d%d%d%d",&n,&d,&x,&y);
        int gcd=exgcd(d,n,x1,y1);
        long long xx=1ll*x1*(y-x)/gcd;
        n/=gcd;
        if((y-x)%gcd==0) printf("%d\n",(xx%n+n)%n);
        else puts("Impossible");
    }
}

标签:gcd,求解,int,欧几里得,扩展,逆元,y1,ax,x1
From: https://www.cnblogs.com/ccag/p/17288208.html

相关文章

  • flask:cbv源码分析、模板语法、请求与响应、session及源码分析、闪现(flash)、请求扩展
    目录一、cbv源码分析1.1基于类的视图写法1.2源码分析1.3分析源码,查找不传别名的时候为什么函数名会变成别名1.4flask的路由注册使用装饰器,如果写了一个登录认证装饰器,那么应该放在路由装饰器上还是下?1.5dispatch_request讲解1.6知识点总结二、模板语法2.1py2.2html三、请......
  • cbv分析、模板、请求与响应、session及源码分析、闪现、请求扩展
    cbv分析#基于类的视图,写法fromflaskimportFlask,requestfromflask.viewsimportView,MethodViewapp=Flask(__name__)app.debug=True#视图类,继承MethodView,类中写跟请求方式同名的方法即可,之前学的所有都一致classIndexView(MethodView):defget(s......
  • Dubbo——扩展(SPI)加载原理
    摘要Dubbo为了更好地达到OCP原则(即“对扩展开放,对修改封闭”的原则),采用了“微内核+插件”的架构。那什么是微内核架构呢?微内核架构也被称为插件化架构(Plug-inArchitecture),这是一种面向功能进行拆分的可扩展性架构。内核功能是比较稳定的,只负责管理插件的生命周期,不会因为系统功......
  • flask,cbv分析,模板,请求与响应,session及源码分析,闪现,请求扩展
    内容回顾web框架同步框架django:大而全,有很多内置的app,还有很多第三方appflask:小而精异步框架santic:异步faskapi异步flask框架wsgirefwerkzeug登录小案例注册路由app.router(路径,methods=[请求方式])新手四件套render_template渲染模板根django有区别redirec......
  • Halo自定义部分扩展
    简介Halo是一款现代化的开源博客/CMS系统,前端由Vue,后端java开发的。我选择的原因是因为是java开发的,所以方便我自定义的扩展。MinIO扩展在我们写博客的时候经常会用到图片,Halo支持多种文件存储方式。这里我选择了MinIO,但是在使用的过程中发现了一个小的问题,它上传的文件是按照......
  • Flask快速入门day02(1、CBV使用及源码分析,2、模板用法,3、请求与响应的基本用法,4、sessi
    目录Flask框架一、CBV分析1、CBV编写视图类方法二、CBV源码分析1、CBV源码问题2、补充问题3、总结三、模板1、py文件2、html页面四、请求与响应1、request常用方法2、response常用方法五、session及源码分析1、session的基本使用2、session源码分析六、闪现七、请求扩展Flask框......
  • flask CBV写法/中间件/异常捕获/请求与响应/session/请求扩展
    flaskcbv写法基于类的视图写法fromflaskimportFlask,requestfromflask.viewsimportMethodView,Viewapp=Flask(__name__)app.debug=True#必须要继承MethodView这个类来编写classLoginView(MethodView):defget(self):print(request.method)......
  • 【Flask】cbv源码分析 flask模板使用 flask请求与响应 session及源码分析 闪现flash
    目录上节回顾今日内容1cbv分析1.1源码分析2模板2.1app.py2.2index.html3请求与响应4session及源码分析4.1session的使用4.2源码分析4.3session执行原理5闪现6请求扩展练习上节回顾#1web框架 -django大而全-flask小而精-sanic-fastapi-同......
  • flask-day2——cbv源码分析、模版语法、请求与响应、session及源码分析、闪现、请求扩
    目录一、cbv源码分析1.1基于类的视图写法1.2源码分析1.3分析源码,查找不传别名的时候为什么函数名会变成别名1.4flask的路由注册使用装饰器,如果写了一个登录认证装饰器,那么应该放在路由装饰器上还是下?1.5dispatch_request讲解1.6知识点总结二、模板语法2.1py2.2html三、请......
  • php 扩展 rabbitmq popt
     首先是rabbitmq-c-master.tar.gz包,可以访问https://github.com/alanxz/rabbitmq-c去下载最新的wgethttps://github.com/alanxz/rabbitmq-c.gitwgethttps://github.com/alanxz/rabbitmq-c/archive/v0.10.0.tar.gz  0.8.0这个版本 对popt 要求低一些,如果你遇......