同余方程(NOIP2012)

原题传送门

水~

纯拓展欧几里得算法。。

#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll ans;
int a,b;
void exgcd(int a,int b,int &x,int &y)
{
    if(b==0){x=1;y=0;return;}
    exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-a/b*y;
}
int main()
{
    cin>>a>>b;
    int x,y;
    exgcd(a,b,x,y);
    x=(x%b+b)%b;
    cout<<x<<endl;
    return 0;
} 
时间: 2024-11-09 04:25:22

同余方程(NOIP2012)的相关文章

『线性同余方程和中国剩余定理』

线性同余方程 定义 给定整数\(a,b,m\),对于形如\(ax\equiv b(mod\ m)\)的同余方程我们称之为一次同余方程,即线性同余方程. 解线性同余方程 对于此类方程,我们可以用如下方法快速的求解. \[ ax\equiv b(mod\ m)?m|ax-b \] 不妨设\(-ym=ax-b\),则可以将方程改写为\(ax+my=b\),该不定方程可以使用扩展欧几里得算法快速地求解(详见『扩展欧几里得算法 Extended Euclid』). 对于\(gcd(a,m)\not |b\

day5感想

---恢复内容开始--- 我感觉自己真的是太弱了,和那些从初中开始学的人TT 今天讲的数学,毕竟以前尖子生培训打过点基础,感觉还不错,但也仅限于听懂而已,打代码什么的…… 今天的内容: 一.数论 1. 判断一个数是否是质数  因为一个合数n必然包含一个不超过sqrt(n)的 质因子  所以筛一遍从2到sqrt(n)即可 求1~n间所有质数? 埃拉托色尼筛选法  每次取出素数的倍数,最后判断?记住POJ2689这道题,怎么也要做出来 2.约数 质因数分解 gcd(a,b)=gcd(a,a-b) B

11-9-2017 星期四 NOIp周

7:42 同余方程 NOIp2012(第一次自己完整推出来); 食物链,又做一遍迷之错误,还有UKE???扒原来的代码???差不多啊???? 10:11 NOIp2016 玩具谜题(模拟...); 准备复习进制转换和高精(只会加减...); 11:31 NOIp2016 组合数问题(杨辉三角+前缀和); 14:27 洛谷P1601 高精度加法; 14:43 洛谷 高精度减法; 准备去爬山了... GG

洛谷P1082/NOIP2012 同余方程

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

NOIP2012同余方程

描述 求关于 x的同余方程  ax ≡ 1(mod b) 的最小正整数解. 输入格式 输入文件 mod.in输入只有一行,包含两个正整数a,b,用一个空格隔开. 输出格式 输出文件 为 modmod .out .输出只有一行,包含一个正整数,包含一个正整数 ,包含一个正整数 x0,即最小正整数解. 输入据保证一定有解. 测试样例1 输入 3 10 输出 7 备注 对于 40% 的数据    2 ≤b≤1,000对于 60% 的数据    2 ≤b≤50,000,000对于 100%的数据    

【codevs1200】 NOIP2012—同余方程

codevs.cn/problem/1200/ (题目链接) 题意:求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. Solution    这道题其实就是求a mod b的逆元x.所谓逆元其实很简单,记a的关于模p的逆 元为a^-1,则a^-1满足aa^-1≡ 1(mod p),用扩展欧几里德即可.  关于扩展欧几里德,有博客写了证明:blog.csdn.net/lincifer/article/details/49391175   代码: // codevs1200 #i

COGS——T 1265. [NOIP2012] 同余方程

http://cogs.pro/cogs/problem/problem.php?pid=1265 ★☆   输入文件:mod.in   输出文件:mod.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. [输入格式] 输入只有一行,包含两个正整数 a, b,用一个空格隔开. [输出格式] 输出只有一行,包含一个正整数X0,即最小正整数解.输入数据保证一定有解. [样例输入] 3 10 [样例输出

回档|NOIP2012 同余方程

题目描述 Description 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 Input/output 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正整数 x0,即最小正整数解.输入数据保证一定有解. 输入:3 7 输出:10 题解:这道题我们先要看懂题意.题目的意思就是ax mod b=1,也就是ax-kb=1.考虑扩展的欧几里得定理.显然y可以是一个负值,我们的目的就是求一个最小的正整数x,让

[NOIP2012] 同余方程

题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入 输入文件为 mod.in.输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出 输出文件为 mod.out.输出只有一行,包含一个正整数 x0,即最小正整数解.输入数据保证一定有解. 样例输入 3 10 样例输出 7 提示 [数据范围] 对于 40%的数据,2 ≤b≤ 1,000: 对于 60%的数据,2 ≤b≤ 50,000,000: 对于 100%的数据,2 ≤a, b≤ 2,000,000,00

[NOIP2012] 提高组 洛谷P1082 同余方程

题目描述 求关于 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