在欧几里得算法(辗转相除)的基础上还有拓展欧几里得算法,大体的定意就是对于不完全为0的非负整数,a,b,gcd(a,b),必然存在整数对x,y使得 gcd(a,b)=ax+by,在找题的时候发现vj上除去poj的题目还是可以提交的,第一个算法很好理解,对于拓展代码的理解不是很透彻,对于这个题目,x不能是负的,只需要+mod再%mid即可

/*欧几里得算法*/
int gcd(int a,int b)
{if(b==0)return a;return gcd(b,a%b);
}
/*拓展/
int gcdplus(int a,int b,int &x,int &y)
{if(b==0){x=1;y=0;return a;}int r=gcdplus(b,a%b,x,y);int t=x;x=y;y=t-a/b*y;return r;
}

A/B

HDU - 1576

要求(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
#include<iostream>
#include<stdio.h>
using namespace std;
#define long long ll
#define mod 9973
int gcdplus(int a,int b,int &x,int &y)
{if(b==0){x=1;y=0;return a;}int r=gcdplus(b,a%b,x,y);int t=x;x=y;y=t-a/b*y;return r;
}
int main()
{int n,b,t,x,y;cin>>t;while(t--){cin>>n>>b;gcdplus(b,mod,x,y);x=(x%mod+mod)*n%mod;cout<<x<<endl;}return 0;
}

hdu1576 A/B相关推荐

  1. HDU1576 A/B【扩展欧几里得算法+试探法】

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

  2. HDU1576 A/B (解法二)【试探法】

    问题链接:HDU1576A/B 问题简述:参见上述链接. 问题分析:之前给出来一个用扩展欧几里德算法解本问题的方法,时间上则比较慢.试探法有时也是高效率的. 根据题意,输入的n=A%9973(没有输入 ...

  3. hdu1576 mod 运算的逆元

    Problem Description 要求(A/B)%9973,但因为A非常大,我们仅仅给出n(n=A%9973)(我们给定的A必能被B整除.且gcd(B,9973) = 1). Input 数据的 ...

  4. HDU1576 A/B 费马小定理

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

  5. hdu-1576(A/B)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题解:设 A % 9973 = r1;则 A = k * 9973 + r1 : 令C = A/ ...

  6. 数学--数论--HDU1576 A / B(逆元)

    问题描述 要求(A / B)%9973,但由于A很大,我们只被告知n(n = A%9973)(我们给定的A必能被B整除,且gcd(B,9973)= 1). 输入项 数据的第一行是一个T,表示有T组数据 ...

  7. HDU1576(欧几里得算法)

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

  8. acm数论之欧几里得gcd

    1.欧几里得定理 同余定理的公式:(a+b)%mod=(a%mod+b%mod)%mod (a*b)%mod=(a%mod*b%mod)%mod 扩展欧几里得也有自己的一个公式:a*x+b*y=gcd ...

  9. Bzoj 3122 随机数生成器

    输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码.注意:P一定为质数 output 共T行, ...

最新文章

  1. PHP之星际设计模式下(转自lightsaber)
  2. 使用describe命令进行Kubernetes pod错误排查
  3. 【CF1047D】Little C Loves 3 II【构造】【赛瓦维斯特定理】
  4. 一篇文章彻底搞懂“分布式事务”
  5. 双 11 模块 79.34% 的代码是怎样智能生成的?
  6. 传统的6d位姿估计fangfa1_李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪...
  7. python 输入框查询_Element输入框带历史查询记录
  8. 8599元起!三星Galaxy Z Fold3/Flip3 5G折叠手机国行即将发货
  9. 【论文阅读】Efficient Net
  10. python是免费的、开源的、跨平台的_NovalIDE是一款开源,跨平台,而且免费的国产Python IDE。...
  11. 论如何用cmd命令做出数字雨特效
  12. SpringBoot - Spring 家族的技术体系
  13. Python基础——模块和正则表达式
  14. K8s实战一:基本概念与命令二
  15. 使用proc编译器遇到的几个问题及解决办法
  16. synergy使用方法和安装包
  17. 51NOD L4-第三章 树 刷题记录-zyz
  18. Python OpenCV Tesseract实现车牌的检测与识别
  19. ASEMI-GBU808整流桥如何测好坏
  20. 第三章 栈、队列和数组

热门文章

  1. 手把手教你制作手机底部导航栏,领导看完都说好
  2. 我的IT成长路——为梦想扬帆起航
  3. 从广州出发领略稻城亚丁和一路上的美丽风光
  4. python3 pycharm 抓取app 上的数据
  5. 挑选微信h5开发制作公司的标准是什么?
  6. dp什么意思java_%~dp0是什么意思
  7. [刷题]leetcode #309 - Best Time to Buy and Sell Stock with Cooldown
  8. asp.net控件,服务器标记的格式不正确问题解决方法
  9. 洛谷P5072 [YNOI2015]盼君勿忘 莫队+unordered_set+毒瘤卡常
  10. 趋势跟踪策略失效了,哈丁和他的元盛该怎么办?