HDU 1576 A/B

原创 2015年07月11日 10:45:49

由题得A=Bx,且A=9973*y+n

所以可得Bx-9973*y=n

由扩展欧几里得算法可求得x

又因为(A/B)%9973的结果就是x%9973,解之。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
long long extend_gcd(long long a,long long b,long long &x,long long &y){
	if(a==0&&b==0) return -1;
	if(b==0){x=1;y=0;return a;}
	long long d=extend_gcd(b,a%b,y,x);
	y-=a/b*x;
	return d;
}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		long long n,B;
		scanf("%I64d%I64d",&n,&B);
		long long x,y;
		extend_gcd(B,9973,x,y);
		x*=n;
		cout<<(x%9973+9973)%9973<<endl;
	}
	return 0;
}


相关文章推荐

HDU - 1576 - A/B(扩展欧几里德)

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

(hdu 1576)A/B(扩展欧几里得/费马小定理求逆元 or 水)

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio...

HDU1576 A/B(扩展欧几里得)

要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 Input 数据的第一行是一个T,表示有T组数据。 每...

HDU 1576 A/B (逆元求扩展欧几里得)

【题目链接】:click here~~ 【题目大意】: 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 ...

HDU 1576-A/B(扩展欧几里得算法)

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

乘法逆元 & hdu 1576 A/B

乘法逆元在除法取模运算中有着广泛的应用。 百度百科: 费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1) ≡1(mod...

HDU 1576-A/B(拓展欧几里得算法)

问题及代码: Problem E Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other...
  • MIKASA3
  • MIKASA3
  • 2015年03月02日 11:51
  • 664

HDU 1576 A/B 【带简单处理的扩展欧几里得】

题目链接: 求解思路:从A一定是B的倍数入手,令A=k*9973+C,那么k*9973+C=tB,所以tB-k*9973=C,用扩展欧几里得求出最小的正t即是A/B,那么再去一次模就求得了解 ...
  • DrCarl
  • DrCarl
  • 2016年04月19日 20:00
  • 155

HDU 1576 A/B(数论-简单逆元)

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

hdu1576 A/B(求逆元模板)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题解:让你求A/B其实就是让你求A*1/B即让你求解B的逆元则题目就迎刃而解。 普及下逆元的知识: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 1576 A/B
举报原因:
原因补充:

(最多只允许输入30个字)