HDOJ 1576 A/B
来源:互联网 发布:电脑插件软件 编辑:程序博客网 时间:2024/06/05 10:36
思路:设(A/B)%9973 = K, 则A/B = k + 9973x (x未知), 因此A = kB + 9973xB,
又A%9973 = n, 所以kB%9973 = n, 故kB = n + 9973y (y未知)
故(k/n)B +(-y/n)*9973 = gcd(B,9973) = 1
扩展欧几里得 求出k/n, 再乘以个n,记得取模,就是answer了
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define m 9973using namespace std;typedef long long LL;void gcd(LL a,LL b,LL &x,LL &y){ if(!b) {x=1;y=0;} else {gcd(b,a%b,y,x);y-=x*(a/b);}}int main(){ int t; LL n,b,x,y; scanf("%d",&t); while(t--) { scanf("%lld%lld",&n,&b); gcd(b,m,x,y); x=(x%m+m)%m; printf("%lld\n",(x*n)%9973); } return 0;}
0 0
- HDOJ 1576 A/B
- hdoj 1576 A/B
- HDOJ 1576 A/B
- hdoj-1576-A/B
- HDOJ 题目1576 A/B(枚举)
- HDOJ A/B 1576【扩展欧几里得+求逆元】
- HDOJ 1576 A/B (扩展欧几里得)
- HDOJ 1576 A/B(数论整除)
- HDOJ 1576 A/B(拓展欧几里得)
- A+B(HDOJ)
- HDOJ-1228-A+B
- HDOJ A+B Problem
- hdoj 1412 {A} + {B}
- hdoj 1412 {A} + {B}
- hdoj 1228 A + B
- HDoj-1228-A + B
- hdoj A + B Again
- hdoj 2101 a+b
- 对js闭包的理解
- 1053. Path of Equal Weight (30)
- K-means聚类算法
- ACM--最少(n+1)/2--HDOJ 1029--Ignatius and the Princess IV--水
- js依据合同生效日和到期日算合同年限,以年为单位
- HDOJ 1576 A/B
- jzoj 1577. 【普及模拟】抓猫
- Android Studio Gradle Build Running 特别慢的问题
- Lambda架构实现数据实时更新
- 网站测速服务 查看自己网站在全球的打开速度
- Android学习之路------广播的注册方式
- 蓝桥杯:字符串替换
- UVALive 3942 Remember the Word 前缀树Trie
- Ajax实现提交form表单