码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1576 A/B

时间:2015-08-28 10:59:19      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

自己写的不定方程的第一题

题目简述(其实是为了方便后面的描述):

已知kx+n=By k.n.B 已知 且k.B互质 求y%k

-----------------------------------------------------------------------------------------------------------------------------

首先 我们可以把这个二元一次不定方程移项

得到 kx+B(-y)=-n

由于k.B互质 所以kx+B(-y)=1(gcd(k,B))的解可以用exgcd求

求出一组解后((-y)*(-n)/(-1)%k+k)%k即为最终答案

至于exgcd 链接中的讲解还是很不错的

http://www.cnblogs.com/ka200812/archive/2011/09/02/2164404.html

-----------------------------------------------------------------------------------------------------------------------------

#include <bits/stdc++.h>
using namespace std;
const int k=9973;
int x,y;
int exgcd(int a,int b)
{
    if(!b)
    {
        x=1;
        y=0;
        return a;
    }
    int d=exgcd(b,a%b);
    int t=x;
    x=y;
    y=t-(a/b)*y;
    return d;
}
int main()
{
    int t,n,B;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&B);
        exgcd(k,B);
        y=((y*n%k)+k)%k;
        printf("%d\n",y);
    }    
}

 

hdu 1576 A/B

标签:

原文地址:http://www.cnblogs.com/sagitta/p/4765752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!