扩展欧几里得算法总结

知识概览

  • 裴蜀定理:对于任意正整数a,b,一定存在非零整数x,y,使得

        ax + by = (a,b)

        而且(a, b)是a和b能凑出来的最小的正整数。

  • 通过扩展欧几里得算法可以求得裴蜀定理中x和y的值,x和y的通解为

        \left\{\begin{matrix} x = x_0 - \frac{b}{a} \cdot k\\ y = y_0 + \frac{b}{a} \cdot k \end{matrix}\right. ,k\in \mathbb{Z}

例题展示

扩展欧几里得算法

题目链接

活动 - AcWing系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。icon-default.png?t=N7T8https://www.acwing.com/problem/content/879/

代码
#include <iostream>using namespace std;int exgcd(int a, int b, int &x, int &y)
{if (!b){x = 1, y = 0;return a;}int d = exgcd(b, a % b, y, x);y -= a / b * x;return d;
}int main()
{int n;scanf("%d", &n);while (n--){int a, b, x, y;scanf("%d%d", &a, &b);exgcd(a, b, x, y);printf("%d %d\n", x, y);}return 0;
}

算法的应用:线性同余方程

题目链接

活动 - AcWing系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。icon-default.png?t=N7T8https://www.acwing.com/problem/content/880/

题解

可以转化为ax + my = b的形式,然后使用扩展欧几里得算法求解。

代码
#include <iostream>using namespace std;typedef long long LL;int exgcd(int a, int b, int &x, int &y)
{if (!b){x = 1, y = 0;return a;}int d = exgcd(b, a % b, y, x);y -= a / b * x;return d;
}int main()
{int n;scanf("%d", &n);while (n--){int a, b, m;scanf("%d%d%d", &a, &b, &m);int x, y;int d = exgcd(a, m, x, y);if (b % d) puts("impossible");else printf("%d\n", (LL)x * (b / d) % m);}return 0;
}

参考资料

  1. AcWing算法基础课

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT扩展系列之网易数帆ChatBI

在当今数字化快速发展的时代,数据已经成为业务经营与管理决策的核心驱要素。无论是跨国大企业还是新兴创业公司,正确、迅速地洞察数据已经变得至关重要。然而,传统的BI工具往往对用户有一定的技术门槛,需要熟练的操作技能和复杂的查询语句,这使得大部分的企业员工难以深入…

2023,半路转行程序员的第一年

键盘敲着总结&#xff0c;抬头看桌面的日期&#xff0c;转眼间来到了 2024 年&#xff0c;时间就这么悄悄的流逝。本来想 12 月底就把总结给写完的&#xff0c;结果一拖&#xff0c;拖到了 2024&#x1f602;。 我本科专业是材料&#xff0c;当时属于生环化材“天坑”专业&…

QT DAY1作业

1.QQ登录界面 头文件代码 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> #include <QIcon> #include <QLabel> #include <QPushButton> #include <QMovie> #include <QLineEdit>class MyWidget : public QWidget {Q_OBJECTpu…

nn网络层-卷积层

一、1d/2d/3d Convolution 卷积运算&#xff1a;卷积核在输入信号&#xff08;图像&#xff09;上滑动&#xff0c;相应位置上进行乘加卷积核&#xff1a;又称为滤波器&#xff0c;过滤器&#xff0c;可认为是某种模式&#xff0c;某种特征。卷积过程类似于用一个模版去图像上…

将Llama2上下文长度扩展100倍;效率更高的SeTformer;LLM准确度基本不变加速1.56×;FreeTalker

本文首发于公众号&#xff1a;机器感知 将Llama2上下文长度扩展100倍&#xff1b;效率更高的SeTformer&#xff1b;LLM准确度基本不变加速1.56&#xff1b;FreeTalker Latte: Latent Diffusion Transformer for Video Generation 本文使用Latent Diffusion Transformer(Latte…

JS入门笔记整理:函数

函数一般用来实现某种重复使用的功能&#xff0c;在需要使用该功能的时候&#xff0c;直接调用函数就可以了&#xff0c;不需要再重复地编写一大堆代码。并且在需要修改该函数功能的时候&#xff0c;也只需要修改和维护这一个函数就行。函数一般会在两种情况下使用&#xff1a;…

哈希表-示例(这个还是实际的功能应用更便于理解)

示例代码参考代码随想录 1、啥是哈希表 哈希表&#xff0c;简单说吧&#xff0c;复杂的现在还没有弄明白怎么描述 1、就是按照一定的规则&#xff0c;将数据存入到数据结构中。而C语言中现在我们常见的就是数组&#xff0c;以及使用数组和链表的结合。还有C&#xff0c;一般使…

Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 Vins-Fuison 运行配置

一、PX4飞控EKF配置 PX4默认使用的EKF配置为融合GPS的水平位置与气压计高度。如果我们想使用视觉定位&#xff0c;就需要把修改配置文件。让EKF融合来自mavros/vision_pose/pose的数据 1.1修改rcS配置文件 gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/rcS 通过注…

Git(1):Git概述

1 开发中的实际场景 场景一&#xff1a;备份 小明负责的模块就要完成了&#xff0c;就在即将Release之前的一瞬间&#xff0c;电脑突然蓝屏&#xff0c;硬盘光荣牺牲&#xff01;几个月来的努力付之东流 场景二&#xff1a;代码还原 这个项目中需要一个很复杂的功能&#x…

【重学C语言】一、C语言简介

【重学C语言】一、C语言简介 什么是编程语言&#xff1f;编程语言 C语言发展史C语言标准变迁开发软件CLion安装步骤 VIsual Studio安装步骤 Clion 和 VS2022 绑定 电脑常识 什么是编程语言&#xff1f; 人类语言&#xff1a;语言就是人类进行沟通交流的表达方式&#xff0c;应…

26 数字验证

效果演示 实现了一个简单的数字密码输入表单&#xff0c;用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码&#xff0c;用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…

windows下全免费手动搭建php8+mysql8开发环境及可视化工具安装

最近PHP项目少了&#xff0c;一直在研究UE5和Golang&#xff0c;但是考虑到政府、国企未来几年国产化的要求&#xff0c;可能又要重拾PHP。于是近日把用了N年的框架重新更新至适合PHP8.2以上的版本&#xff0c;同时也乘着新装机&#xff0c;再次搭建php和mysql开发环境。本文留…

0109作业

1> 思维导图 2> 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin&quo…

第二百五十五回

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了dart语言中的setter/getter相关的内容&#xff0c;本章回中将介绍局部动态列表.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 在正常情况下列表位于整个页面中&#xff0c;而且可以在整个页面中滚动&am…

return、break、continue用法和区别(C/C++)

return、break、continue用法和区别 1、Return&#xff08;跳出函数&#xff09;&#xff1a;跳出当前正在执行函数&#xff0c;即会终止函数的运行&#xff0c;直接返回return的值。可以返回变量、结构体、指针等。不能返回数组和指向&#xff08;函数内&#xff09;局部变量…

Spring学习 基于注解的IOC配置

3.基于注解的IOC配置 学习基于注解的IOC配置&#xff0c;大家脑海里首先得有一个认知&#xff0c;即注解配置和xml配置要实现的功能都是一样的&#xff0c;都是要降低程序间的耦合。只是配置的形式不一样。 3.1.创建工程 3.1.1.pom.xml <?xml version"1.0" en…

记录汇川:H5U与Fctory IO测试5

主程序&#xff1a; 子程序&#xff1a; IO映射 子程序&#xff1a; 自动程序 Fctory IO配置&#xff1a; 触摸屏如下&#xff1a; 实际动作如下&#xff1a; Fctory IO测试5

市场复盘总结 20240109

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 昨日主题投资 连板进级率 66% 二进三&#xff1a; 进级率低 最常用的二种方法&#xff1a; 方法一&#x…

一台智能汽车会使用哪些芯片

目录 1.汽车芯片技术逻辑 2.汽车芯片产品详解和厂商一览 2.1 控制芯片 2.2 计算芯片 2.3 传感芯片 2.4 通信芯片 2.5 存储芯片 2.6 安全芯片 2.7 功率芯片 2.8 驱动芯片 2.9 电源管理芯片 2.10 系统基础芯片 3.小结 这两天算是和标准杠上了&#xff0c;哈哈。 昨…

红队打靶练习:RICKDICULOUSLYEASY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 gobuster dirsearch WEB get flag1 /robots.txt FTP get flag2 telenet登录 get flag3 get flag4 9090端口 get flag5 dirsearch ssh登录 Summer用户 get flag6 信息收集 get flag7 get fl…