洛谷——P1082 同余方程
P1082 同余方程
题目描述
求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
输入输出格式
输入格式:
输入只有一行,包含两个正整数 a, b,用一个空格隔开。
输出格式:
输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。
输入输出样例
- 3 10
- 7
说明
【数据范围】
对于 40%的数据,2 ≤b≤ 1,000;
对于 60%的数据,2 ≤b≤ 50,000,000;
对于 100%的数据,2 ≤a, b≤ 2,000,000,000。
NOIP 2012 提高组 第二天 第一题
思路:
裸地扩展欧几里得
扩展欧几里得(求同余方程)
应用性质:
对于不完全为0的整数a,b存在a*x+b*y==gcd(a,b)
化简式子:
使a为两数中较大的数
当b==0时,gcd(a,b)==gcd(a,0)==a
所以当b==0时,x==1,y==0
同时,ax+by==gcd(a,b),bx1+a%by1==gcd(b,a%b)
所以,ax+by==bx1+(a-a/b*b)*y1;
ax+by==bx1+ay1-a/b*b*y1
ax+by==ay1+b(x1-a/b*y1)
即:
x==y1,y==x1-a/b*y1
由此可得出扩展欧几里得求x,y的递归式
代码:
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- int a,b,x,y,gcd;
- int exgcd(int a,int b,int &x,int &y)
- {
- )
- {
- x=,y=;
- return a;
- }
- int r=exgcd(b,a%b,x,y),tmp;
- tmp=x,x=y,y=tmp-a/b*y;
- return r;
- }
- int read()
- {
- ,f=; char ch=getchar();
- ; ch=getchar();}
- +ch-'; ch=getchar();}
- return x*f;
- }
- int main()
- {
- a=read(),b=read();
- gcd=exgcd(a,b,x,y);
- )
- x+=(b/gcd);
- printf("%d",x);
- ;
- }
洛谷——P1082 同余方程的更多相关文章
- 洛谷P1082 同余方程 [2012NOIP提高组D2T1] [2017年6月计划 数论06]
P1082 同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输 ...
- 洛谷P1082 同余方程 题解
题目链接:https://www.luogu.com.cn/problem/P1082 题目大意: 求关于 \(x\) 的同余方程 ax≡1(mod b) 的最小正整数解. 告诉你 \(a,b\) 求 ...
- [NOIP2012] 提高组 洛谷P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 洛谷P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 洛谷 P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 洛谷 P1082 同余方程 —— exgcd
题目:https://www.luogu.org/problemnew/show/P1082 用 exgcd 即可. 代码如下: #include<iostream> #include&l ...
- 洛谷 P1082 同余方程(同余&&exgcd)
嗯... 题目链接:https://www.luogu.org/problem/P1082 这道题很明显涉及到了同余和exgcd的问题,下面推导一下: 首先证明有解情况: ax + by = m有解的 ...
- 洛谷 P1082 同余方程 题解
每日一题 day31 打卡 Analysis 题目问的是满足 ax mod b = 1 的最小正整数 x.(a,b是正整数) 但是不能暴力枚举 x,会超时. 把问题转化一下.观察 ax mod b = ...
- 洛谷 P1082 同余方程(exgcd)
题目传送门 解题思路: 因为推导过程过于复杂,懒得写,所以题解传送门 AC代码: #include<iostream> #include<cstdio> using names ...
随机推荐
- JMeter配置MongoDB
1.启动JMeter,右键添加->配置文件->MongoDB Source Config. 注意:JMeter 3.0以上版本去掉了此配置项,可以从低版本处拷贝. 2.设置MongoDB配 ...
- [BZOJ3224/Tyvj1728]普通平衡树
本篇博客有详细题解,浅谈算法--splay
- 洛谷 P3437 [POI2006]TET-Tetris 3D
二维线段树区间更新啊 树套树的外层树,如果是线段树的话一般似乎不能打标记?(毕竟标记不好下传) 然而起码对于这题是可以的...对于外层线段树,每个节点放两个内层线段树dat和setv,分别是得到的值和 ...
- 树形DP Gym 100496H House of Representatives
题目传送门 /* 题意:寻找一个根节点,求min f(u) = ∑ρ(v, u) * p(v).ρ(v, u)是u到v的距离,p(v)是v点的权值 树形DP:先从1出发遍历第一次,sum[u]计算u到 ...
- kali中的APT软件包处理工具(apt-get)、Debian软件包管理器(dpkg)、源代码压缩和Nessus安装实用指南
写在前面的话 能看懂此博客的朋友,深信你有一定的Kali基础了. 使用APT软件包处理工具(apt-get).Debian软件包管理器(dpkg)来维护.升级和安装自定义及第三方应用程序 APT软件包 ...
- [转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择
本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHe ...
- [转]position:fixed; 在IE9下无效果的问题
本文转自:http://www.cnblogs.com/xinwang/archive/2013/04/06/3002384.html 平常DIV+CSS布局时,position属性一般用absoul ...
- CF868B Race Against Time
思路: 模拟.少写了一个等号FST了,好气啊. 实现: #include <bits/stdc++.h> using namespace std; int main() { int h, ...
- Tomcat无法clean,无法remove部署的项目
错误: 对部署在Tomcat下的项目进行clean操作,总是提示Could not load the Tomcat server configuration,错误信息如图: 解决: 原来是将Serve ...
- Django基础之数据库增删改查
Django中生成多个APP,每个APP下都有自己models模块,避免了多个APP之间数据的相互影响. 1.首先在APP的models下创建一个类 class UserInfo(models.Mod ...