扩展欧几里得——acwing

news2024/12/27 19:21:27

数论—快速幂,欧几里得及其扩展,逆元,单位元_数论单位元函数-CSDN博客

之前做的数论笔记👆👆👆

题目一:扩展欧几里得算法

877. 扩展欧几里得算法 - AcWing题库

分析

代码

#include<bits/stdc++.h>
using namespace std;

int exgcd(int &x, int &y, int a, int b) {
    if(!b) {
        x = 1;
        y = 0;
        return a;
    }
    
    int c = exgcd(x,y,b,a%b);
    
    int t = y;
    y = x-(a/b)*y;
    x = t;
    
    return c;
}

int main() {
    int _;
    cin >> _;
    
    while(_ --) {
        int a, b; cin >> a >> b;
        int x, y;
        int c = exgcd(x,y,a,b);
        
        cout << x << " " << y << endl;
    }
    
    return 0;
}

题目二:线性同余方程

878. 线性同余方程 - AcWing题库

分析

代码

#include<bits/stdc++.h>
using namespace std;

using ll = long long;

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

int main() {
    int _;
    cin >> _;
    while(_ --) {
        int a, b, m;
        cin >> a >> b >> m;
        int x, y;
        int d = exgcd(x,y,a,m);
        
        if(b%d) puts("impossible");
        else {
            cout << (ll)x*b/d%m << endl; // 先乘后除开ll防爆数据 
            //答案要求在int 范围,a(modm)*x(modm)=b mod(m);
        }
    }
    
    return 0;
}

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

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

相关文章

数字信号处理实验报告四:IIR数字滤波器设计及软件实现

1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)…

53 基于单片机的8路抢答器加记分

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位&#xff0c;然后八个选手按键&#xff0c;开机显示四条杠&#xff0c;然后按一号选手按键&#xff0c;数码管显示&#xff13;&#xff10;&#xff0c;这…

Vue教程|搭建vue项目|Vue-CLI新版脚手架

一、安装Node环境 安装Node及Npm环境 Node下载地址:Node.js — Run JavaScript EverywhereNode.js is a JavaScript runtime built on Chromes V8 JavaScript engine.https://nodejs.org/en/ 安装完成后,检查安装是否成功,并检查版本,命令如下: node -v npm -v mac@Macd…

小米澎湃OS2跟蜂窝网络相关的设置和调试【功能设计】

界面功能 开发者模式下&#xff0c;支持数据和WLAN网络相关的设置&#xff0c;跟数据有关的主要如下&#xff1a; 蜂窝网络调试 > 5G-A 特性中心始终开启移动数据网络&#xff08;便于WiFi和数据快速切换&#xff0c;在国外北美运营商有些需求中明确定义要开着&#xff09…

buuctf-reverse-reverse2

进main分析代码 printf("input the flag:");__isoc99_scanf("%20s", s2);if ( !strcmp(&flag, s2) )return puts("this is the right flag!");//提示用户输入 flag。elsereturn puts("wrong flag!");//读取用户输入的字符串&#…

ubuntu24.04安装Kubernetes1.31.0(k8s1.30.0)高可用集群

ubuntu24.04安装Kubernetes1.30.0(kubernetes1.30.0)高可用集群 一、总体概览 目前最新版的K8S版本应该是1.31.0,我们安装的是第二新的版本1.30.0,因为有大神XiaoHH Superme指路,所以基本上没踩坑,很顺利就搭建完成了。所有的机器都采用的最新版Ubuntu-Server-24.04长期支…

学成在线day08

部署静态页面 相关操作&#xff1a;https://mx67xggunk5.feishu.cn/wiki/FLozwxrrxihTJbkyTHgchDt4nUc nginx的最终配置文件&#xff1a; worker_processes 1; events {worker_connections 1024; } http {include mime.types;default_type application/octet-strea…

mysql之找回忘记的root密码

mysql之找回忘记的root密码 1.方法1&#xff0c;init-file重置密码2.方法2&#xff0c;–skip-grant-tables重置密码 1.方法1&#xff0c;init-file重置密码 使用init-file参数来对密码进行重新设置 1.停止mysql服务进程 首先将mysql的服务停用掉&#xff1b; 输入命令&#x…

ROS VSCode调试方法

VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…

力扣--LCR 152.验证二叉搜索树后序遍历

请实现一个函数来判断整数数组 postorder 是否为二叉搜索树的后序遍历结果。 提示&#xff1a; 数组长度 < 1000 postorder 中无重复数字代码 class Solution { public boolean verifyPostorder(int[] postorder) { if(postorder null){ return true; } return f(postor…

LeetCode 力扣 热题 100道(十一)字母异位词分组(C++)

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 排序字符&#xff1a;对于每个字符串&#xff0c;我们将其字符排序&#xff0c;得到一个唯一的 "排序后的字母&qu…

【Anaconda】 创建环境报错:CondaHTTPError: HTTP 000 CONNECTION FAILED for url

问题描述 使用 Anaconda 创建环境时报错&#xff1a; CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/free/noarch/repodata.json.bz2> Elapsed: -An HTTP error occurred when trying to retrieve this URL. HTTP errors are o…

CC-Link IEFB转Modbus TCP三菱FX5U与施耐德M580通讯案例

一. 案例背景 在现代工业自动化领域&#xff0c;企业为了构建高效、灵活的生产系统&#xff0c;往往会选用不同品牌的设备。在自动化控制场景中&#xff0c;施耐德M580系列PLC则以其强大的处理能力和先进的功能&#xff0c;在复杂的过程控制和大型系统集成方面表现出色&#xf…

【VUE3】新版Vue3+ElementPlus全家桶开发视频项目实战

VUE 介绍 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。 Vue.js是一个MVVM(Model - View - ViewModel)的SPA框架。 Model:数…

常用函数的使用错题汇总

#include <iostream> #include <fstream> #include <string>int main() {std::ifstream fin("example.txt"); // 创建 ifstream 对象并打开文件// 检查文件是否成功打开if (!fin) {std::cerr << "Error opening file!" << s…

Android电视项目焦点跨层级流转

1. 背景 在智家电视项目中&#xff0c;主要操作方式不是触摸&#xff0c;而是遥控器&#xff0c;通过Focus进行移动&#xff0c;确定点击进行的交互&#xff0c;所以在电视项目中焦点、选中、确定、返回这几个交互比较重要。由于电视屏比较大&#xff0c;在一些复杂页面中会存…

Linux -初识 与基础指令1

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【Linux】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 文章目录 &#x1f4da; 前言&#x1f5a5;️ 初识&#x1f510; 登录 root用户&#x1f465; 两种用户➕ 添加用户&#x1f9d1;‍&#x1f4bb; 登录 普通用户⚙️ 常见…

Oracle12.2 RAC集群管理修改IP地址(DNS解析)

Oracle12.2 RAC集群管理之修改IP地址 该章节实验是基于此章节基础上操作&#xff1a; Oracle LinuxR7安装Oracle 12.2 RAC集群实施&#xff08;DNS解析&#xff09;-CSDN博客 环境 改前IP&#xff1a; 172.30.21.101 hefei1 hefei1.hefeidb.com 172.30.21.102 hefei2 …

Git——本地仓库链接并推送到多个远程仓库

步骤 1. 新建仓库init 或 删除已有仓库远程链接 // 1.新建init git init// 2.已有仓库&#xff0c;查看链接的远程仓库 git remote -v// 3.已有远程连接仓库&#xff0c;需要删除连接 git remote rm origin(或对应远程仓库名) 2.新建远程仓库 在gitee、github等托管平台创建…

IDEA某个Impl下的引入的文件红色

IDEA某个Impl下的引入的文件红色&#xff0c;可以正常启动&#xff0c;而且文件是存在的 1.什么情况下会出现这个问题 我的是在不关闭项目的情况下就把电脑关机了&#xff0c;因为这样第二天开机&#xff0c;启动IDEA就会把昨天关机前所有开启的项目全部开启 &#xff0c;这样有…