hdu1576 A/B 扩展欧几里德算法
2016-03-05 23:05
387 查看
[align=left]Problem Description[/align]
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。
[align=left]Input[/align]
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
[align=left]Output[/align]
对应每组数据输出(A/B)%9973。
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
[align=left]n=A%9973,则n=A-A/9973*9973。又A/B=x,则A=Bx。所以Bx-A/9973*9973=n。即Bx-9973y=n,x=(x%9973+9973)%9973。[/align]
拓展欧几里德模板
注意:对于a*x+b*y=c;当c是gcd(a,b)的倍数时才有解
x=(x%9973+9973)%9973可以这样处理得到非负最小的x
y=(c-a*x)/b;
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。
[align=left]Input[/align]
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
[align=left]Output[/align]
对应每组数据输出(A/B)%9973。
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
[align=left]n=A%9973,则n=A-A/9973*9973。又A/B=x,则A=Bx。所以Bx-A/9973*9973=n。即Bx-9973y=n,x=(x%9973+9973)%9973。[/align]
#include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<algorithm> using namespace std; void extentgcd(int a,int b,int &x,int &y) { if(!b) { x=1; y=0; } else { extentgcd(b,a%b,y,x); y-=x*(a/b); } } int main() { int T; cin>>T; for(int i=1;i<=T;i++) { int n,b; cin>>n>>b; int x,y; extentgcd(b,9973,x,y); x=x*n; x=(x%9973+9973)%9973;//为了防止x为负数 cout<<x<<endl; } return 0; }
拓展欧几里德模板
void extentgcd(int a,int b,int &x,int &y)//ax+by=gcd(a,b)中x,y的值 { if(!b) { x=1; y=0; } else { extentgcd(b,a%b,y,x); y-=x*(a/b); }
}
注意:对于a*x+b*y=c;当c是gcd(a,b)的倍数时才有解
x=(x%9973+9973)%9973可以这样处理得到非负最小的x
y=(c-a*x)/b;
相关文章推荐
- PAT-A1048. Find Coins (25)
- Web API 基于ASP.NET Identity的Basic Authentication
- 如何实现网页点击左边的导航右边显示对应的页面?
- 最后一次说说闭包
- 在32位Win7下安装MySQL5.7.10安装配置过程
- leetcode:Jump Game II 【Java】
- PAT-A1029. Median (25)
- 读《我是一只IT小小鸟》有感
- System Operations on AWS - Lab 2 - Configuring VPC
- 集合类学习之Hashmap机制研究
- CentOS 下编译安装PHP
- BZOJ2423/HAOI2010 最长公共子序列
- CSS中如何实现表格文字的换行
- GuideMap 登陆界面 详细文档(一)
- PAT-A1085. Perfect Sequence (25)
- 第二次作业
- CentOS 下编译安装MySQL
- 测试
- LeetCode 50 Pow(x, n)(Math、Binary Search)(*)
- Java关键字介绍之this与super