AB HDU 1576
来源:互联网 发布:js中控件隐藏和显示 编辑:程序博客网 时间:2024/05/29 06:37
扩展欧几里得
题目描述:因为A值太大没有给出,给出了A%9973的值为n,另外还给出了B,求(A/B)%9973的值。
题目分析:
推一下方程,用扩展欧几里得算法。另(A/B)%9973的值为x, 方程推导过程:
(A/B)%9973=x -> A/B=9973*m+x -> A = 9973*m*B+x*B -> 将上式A带入A%9973 -> (9973*m*B+x*B)%9973 =n -> Bx%9973=n
Bx+9973y=n; 因为gcd(B,9973) =1,所以最后乘以n。
代码如下:
#include <iostream>#include <cstdio>using namespace std;typedef long long LL;const LL m=9973;LL exgcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0; return a; } LL ans=exgcd(b,a%b,x,y); LL t=y; y=x-(a/b)*y; x=t; return ans;}int main(){ int kase; scanf("%d",&kase); while(kase--) { LL B,n,x,y; scanf("%lld %lld",&n,&B); LL g=exgcd(B,m,x,y); x*=n; x=(x%m+m)%m; cout << x << endl; } return 0;}
阅读全文
0 0
- AB HDU 1576
- hdu 5431 AB String
- Skip the Class hdu AB
- ab.
- ab
- ab
- ab
- ab
- ab
- ab
- ab
- HDU 5435/BC 54E AB String
- hdu 1095 a+b问题7 多组ab.输出结果加换行 20140722.cpp
- hdu 1075 what are you talking ab…
- YT14-HDU-满足(a^2+b^2 +m)/(ab)的(a,b)有多少
- APACHE ab
- apache ab
- ab测试
- Gephi简介
- SVM中引入拉格朗日对偶理解
- 离散题目15
- 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation
- IPC 消息队列(message queue)
- AB HDU 1576
- linux多线程互斥锁的简单使用
- 一个基于Angular4+Bootstrap4+Scss的后台管理系统界面
- 06、vue.js 之表单控件绑定
- (五) Java多线程详解之Callable和Future阻塞获取线程返回结果
- 神经网络中epoch, iteration, batchsize相关理解和说明
- 欢迎使用CSDN-markdown编辑器
- 最长公共子序列
- 离散题目17