zoukankan      html  css  js  c++  java
  • vijos1781 同余方程

    描述

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

    格式

    输入格式

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

    输出格式

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

    样例1

    样例输入1[复制]

     
    3 10

    样例输出1[复制]

     
    7

    限制

    每个测试点1s

    提示

    对于40%的数据,2 ≤b≤ 1,000; 
    对于60%的数据,2 ≤b≤ 50,000,000; 
    对于100%的数据,2 ≤a, b≤ 2,000,000,000。

    来源

    Noip2012提高组复赛Day2T1

     
    又是复习题……练练exgcd
    感觉这么水的题发上去显得我很没有水平
    算了……反正我也确实没水平
    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    #include<queue>
    #include<deque>
    #include<set>
    #include<map>
    #include<ctime>
    #define LL long long
    #define inf 0x7ffffff
    #define pa pair<int,int>
    #define pi 3.1415926535897932384626433832795028841971
    using namespace std;
    inline LL read()
    {
        LL x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    int a,b,x,y;
    inline int gcd(int a,int b)
    {
    	if (!b)return a;
    	return gcd(b,a%b);
    }
    inline void exgcd(int a,int b,int &x,int &y)
    {
    	if (!b){x=1;y=0;return;}
    	exgcd(b,a%b,x,y);
    	int t=x;x=y;y=t-a/b*y;
    }
    int main()
    {
    	a=read();b=read();
    	exgcd(a,b,x,y);
    	x=(x%b+b)%b;
    	printf("%d
    ",x);
    }
    

      

    ——by zhber,转载请注明来源
  • 相关阅读:
    关于页面元素不可见的几种方法
    关于a标签点击禁止的
    v-bind 的作用 以及:key的作用
    v-model双向绑定的原理
    es6之babel
    父子组件之间的传参
    组件名学习
    PreparedStatement執行sql語句
    Statement执行DQL语句(查询操作)
    MySQL 插入数据时,中文乱码???问题的解决
  • 原文地址:https://www.cnblogs.com/zhber/p/4093498.html
Copyright © 2011-2022 走看看