洛谷1082 同余方程

题解:洛谷 P1082 [NOIP 2012 提高组] 同余方程 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。输入数据保证一定有解。#普及+# #扩展欧几里得算法#本文分享的必刷题目是从。 阅读详情

NOIP 2012 D2 T1

原题地址:

https://www.luogu.org/problem/show?pid=1082

题目描述

求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入输出格式

输入格式:

输入只有一行,包含两个正整数 a, b,用一个空格隔开。

输出格式:

输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。

输入输出样例

输入样例#1:

3 10

输出样例#1:

7

说明

【数据范围】

对于 40%的数据,2 ≤b≤ 1,000;

对于 60%的数据,2 ≤b≤50,000,000;

对于 100%的数据,2 ≤a, b≤2,000,000,000。

NOIP 2012 提高组 第二天 第一题

 

扩欧模板题啊!借此机会整理一下扩展欧几里得算法相关的内容。

扩欧算法的应用,一句话概括就是解方程,二元一次方程。扩欧的原理就不再说了,结合代码和下文的证明应该可以理解。给出参数a,b,可以求出形如下式的方程:

ax+by=gcd(a,b)

把参数(a,b,x,y)往扩欧算法模板里套,可以得出x,y的一组解,然后可以得出x,y的通解:

x=x0+b*k   y=y0-a*k   (k为整数)

扩欧函数模板:

void exgcd(ll a,ll b,ll &x,ll&y)

{

    if(b==0){x=1;y=0;return;}

    exgcd(b,a%b,y,x);

    y=y-a/b*x;

}

证明:

y=gcd(a,b)/b-(a/b)=y0

当x增大bk的时候,y=gcd(a,b)/b-(a/b)*(x+bk)=y0-(a/b)*bk=y0-ak

然后就可以根据题目要求解决问题了。

解题思路

其实就是解方程ax-by=1,求x的最小正整数解。那么干脆转化成ax+by=1,套扩欧函数解出来x0,然后套公式求出最小正整数解就行。

参考代码

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#define ll long long
using namespace std;
ll a,b,x,y;
void exgcd(ll a,ll b,ll &x,ll&y)
{
    if(b==0){x=1;y=0;return;}
    exgcd(b,a%b,y,x);
    y=y-a/b*x;
}
 
int main()
{
    cin>>a>>b;
    exgcd(a,b,x,y);
    while(x<0) x+=b;
    cout<<x;
    return 0;
}


别再搞混了!MATLAB通信仿真中EbN0转SNR的保姆级公式推导与避坑指南 本文深入解析MATLAB通信仿真中EbN0与SNR转换的核心公式,揭示数字仿真与理论系统的关键差异。通过真实案例展示错误参数设置导致的隐蔽问题,并提供完整的参数自查清单和正确实现代码,帮助工程师和学生避免常见错误,确保仿真结果准确可靠。 阅读详情

相关推荐

PVT(Process Voltage Temperature)

芯片PVT

网始如芯个人博客 3万+

同余方程详解

同余概述 定义: 同余给定正整数mmm,若用mmm去除两个整数aaa和bbb,所得的余数相同,称a和b对模mmm同余,记作a≡b(mod m)a≡b(mod\ m)a≡b(mod m),并称该式为同余式,否则,称aaa和bbb对模mmm不同余。 定理: a≡b(mod m)a≡b(mod\ m)a≡b(mod m),当且仅当m∣(a−b)m|(a-b)m∣...

weixin_43956585的博客 2万+

[Windows] 发票识别工具。支持xml、pdf、ofd文件。

发票识别是财务自动化中的关键环节,支持多种格式(XML、PDF、OFD)的识别工具能显著提升工作效率。以下介绍基于Windows平台开发此类工具的技术方案。发票识别是财务自动化中的关键环节,支持多种格式(XML、PDF、OFD)的识别工具能显著提升工作效率。以下介绍基于Windows平台开发此类工具的技术方案。

pZC_dqux的博客 666

同余方程

数论-同余方程 给出一个新记号 a≡b(mod)n 上式的含义为:“a和b关于模n同余” 可以理解为a%n==b%n充要条件为 a≡b(mod)n <=> a-b是n的整数倍。 例题 1 输出正整数,解方程ax≡b(mod n).a,b,n<=10e9; 由上可知 ax-b=ny 得到 ax-ny=b; 这个方程是一个不定方程,也可以叫做丢番图方程。换种写法也就是...

weixin_44203780的博客 1700

本地AI代码助手:智能解析大型代码库,实现自动化重构与理解

在软件开发中,大型代码库的理解与维护是常见挑战。传统方法依赖人工阅读和有限上下文工具,效率低下。通过结合检索增强生成(RAG)和多智能体(Multi-Agent)架构,现代AI工具能够智能解析代码结构,理解模块关系,并精准定位相关代码片段。这种技术不仅能提升代码探索效率,还能自动化执行重构、文档生成等任务,在遗留系统维护、快速上手新项目等场景中发挥关键作用。本文以blackboxaicode/cli为例,展示了如何利用其代码感知和Workflow Automation能力,高效处理复杂代码库。

weixin_30240349的博客 362

QGIS-空间分析-核密度分析

本文在QGIS软件中使用核密度估计法分析全球历年的地震数据,旨在分析出地震频发且严重的区域,为地震防控提供参考依据。全球历年地震数据来源于网络,仅用于技术学习探索。通过核密度分析,可以观察到南美、美国西部海岸线和太平洋北部区域在全球地震分布状态中是最为集中和强烈的。

imxiezy的博客 2466

洛谷B2071 余数相同问题

洛谷B2071 余数相同问题

旺旺的碎冰冰~的博客 619

python-pptx库中文文档及使用样例

个人使用样例及部分翻译自官方文档,并详细介绍chart的使用

4万+

洛谷 练习

一些洛谷比较简单的题

weixin_49538228的博客 672

RTC 实时时钟实验

如果在 RTC_CR 寄存器中设置了相应的允许位,则在每个TR_CLK 周期中 RTC 产生一个中断(秒中断)。void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data) // 往备份区域写用户数据的函数 (这个函数的第一个参数就是寄存器的标号了,这个是通过宏定义定义的)存储在 RTC_ALR 寄存器中的可编程时间相比较,如果 RTC_CR 控制寄存器中设置了相应允许位,比较匹配时将产生一个闹钟中断。寄存器操作完成,并同步之后,设置秒钟中断。

m0_55996456的博客 1205

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 427

【OI】同余方程

一.同余方程的判定 我们知道同余方程是形如 ax ≡ b (mod n) 的东西,用文字表达就是: ax和b除以n的余数相同 那么,经过如下推理:(用=代替恒等于) ax=b (mod n) ax=b+n*x2 (转化为b加上n乘上某个数等于ax) ax-n*x2=b(移项得) a x1 + n x2 = b(转换) ax + ny = b 但是为了看起来更顺眼,我们将...

weixin_30721899的博客 372

华为OD机试真题 新系统 2026-04-22 Python&JS 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 313

洛谷P1082 同余方程 数论

洛谷P1082 同余方程 数论 要求 ax === 1 (mod b) 相当于求 ax + by == 1 的解并要求 x 为最小的正整数 这样我们只要 扩展欧几里德来一发,然后最小正整数 取 mod 就行了 但是一般题目里会让你求一个最小的x,当你用拓欧求出一个解时,一般会让你去找一个最小解,我们只需要对这个数取模b就行了(如果求正数,你只需要先加一个b,再取...

weixin_34257076的博客 127

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【普及+/提高】洛谷P1082 ——[NOIP 2012 提高组] 同余方程

想进步的进来~

yuyu130225的博客 1229

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【题解】洛谷P1082 [NOIP2012]同余方程(扩展欧几里得算法详解)

题目 洛谷P1082同余方程 题解 定义gcd(a,b)为a,b的最大公约数(Greatest Common Divisor)。 由欧几里得定理得: 特别地:gcd(a,0)=a 由裴蜀定理得: 扩展欧几里得算法:假设a*x+b*y=gcd(a,b) 1.b=0时,gcd(a,b)=a,解得x=1,y=0 2.b!=0时,假设 可等价变形为: 与方程a*x+b*y=gcd(a,b)比较得:x=y’,y=x’-(a/b)*y’,不断重复操作,递归改.

zjgmartin的博客 406

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

洛谷P1082 [NOIP 2012 提高组] 同余方程——线性同余方程

此题其实就是求ax=1+by,可以转换成ax+by=1的最小正整数解,而我们要求x的最小正整数解,就要套一个公式,Xmin=(x0 mod T+T) mod T,其中T=b/gcd(a,b)。设a,b为整,m为正整数,则把a和b模m同余记为a≡b(mod m),这个算式相当于a=b+my,其中y∈Z。求关于 x 的同余方程 ax≡1(modb) 的最小正整数解。一个整数 x0​,即最小正整数解。输入数据保证一定有解。一行,包含两个整数 a,b,用一个空格隔开。

zbh0604的博客 666

【洛谷 1082】同余方程

题目描述 求关于xx的同余方程a x \equiv 1 \pmod {b}ax≡1(modb)的最小正整数解。 输入格式 一行,包含两个正整数a,ba,b,用一个空格隔开。 输出格式 一个正整数x_0x0​,即最小正整数解。输入数据保证一定有解。 输入输出样例 输入 #1复制 3 10 输出 #1复制 7 说明/...

weixin_30410119的博客 1155

洛谷P1082 同余方程

链接:[P1082](https://www.luogu.org/problem/P1082) 题目描述 求关于xx的同余方程 a x \equiv 1 \pmod {b}ax≡1(modb) 的最小正整数解。 输入格式 一行,包含两个正整数 a,ba,b,用一个空格隔开。 输出格式 一个正整数 x,即最小正整数解。输入数据保证一定有解。 输入输出样例 输入 #1 3 10 输出 #1 7 说明/...

秃头交易站. 1429

洛谷 P1082 同余方程

P1082 同余方程 题目说明: 主要思路: 扩展的欧几里德: 已知 a,b 求 一组解 x,y 满足 ax+by = gcd(a, b) 这个公式(即扩展欧几里得算法) 以下这篇文章写的非常好,拯救了我这个小垃圾。 扩展的欧几里德 根据这篇文章我们可以利用递归函数求解 函数如下: void exgcd(int a,int b) { if(b==0) { x=1; y=0; return; } exgcd(b,a%b);

weixin_45984591的博客 229

[洛谷]P1082 同余方程

原题题目描述求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。 输入输出格式 输入格式:输入只有一行,包含两个正整数 a, b,用一个空格隔开。输出格式:输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。输入输出样例 输入样例#1:3 10输出样例#1:7说明【数据范围】对于 40%的数据,2 ≤b≤ 1,000;对于 60%的数据,2 ≤b≤ 50,

PMYCQACF的博客 655

同余方程【洛谷P1082】

【题目描述】 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。 【输入输出格式】 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开。 输出格式: 输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。 【输入输出样例】 输入样例#1: 3 10 输出样例#1: 7 【说明】 对于 40%的数据,2 ≤b≤ 1,000; 对于 60%的数据,...

ESTHERWXY的博客 263

洛谷 P1082 同余方程(同余&&exgcd)

嗯... 题目链接:https://www.luogu.org/problem/P1082 这道题很明显涉及到了同余和exgcd的问题,下面推导一下: 首先证明有解情况:     ax + by = m有解的必要条件是 m mod gcd(a, b) = 0     a为gcd(a, b)的倍数,b为gcd(a, b)的倍数,x、y为整数,     所以ax +...

weixin_30567225的博客 149
上一篇: 洛谷1041 传染病控制
下一篇: 神犇博客友链
zero_from
博客等级 码龄10年 11粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值