HDU-1576 A/B(逆元--玄学AC)

A/B

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9104    Accepted Submission(s): 7294


 

Problem Description

要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。

 

Input

数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。

 

Output

对应每组数据输出(A/B)%9973。

 

Sample Input

 

2 1000 53 87 123456789

 

Sample Output

 

7922 6060

 

Author

xhd

 

Source

HDU 2007-1 Programming Contest

 

Recommend

linle

对于A/B %C 我们不能直接算,需要转化一下:A/B %C = A * (B模C的逆元)% C

当时理解错了,以为是 (A*B)模C 的逆元再%C,然后照着这个思路,居然AC 了,求大神解惑!!!

#include<iostream>
typedef long long ll;
using namespace std;
ll exgcd(ll a,ll b,ll &x,ll &y){
	ll t,d;
	if(b==0){
		x=1;
		y=0;
		return a;
	}
	d=exgcd(b,a%b,x,y);
	t=x;
	x=y;
	y=t-(a/b)*y;
	return d;
}
ll modv(ll a,ll mod){
	ll x,y;
	exgcd(a,mod,x,y);
	return (mod+x%mod)%mod;
}
int main(){
	int t;
	cin>>t;
	ll a,b;
	while(t--){
		cin>>a>>b;
		cout<<modv(modv(a,9973)*b,9973)<<endl;
	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40922859/article/details/81637217