hdoj-1576-A/B
来源:互联网 发布:360数据恢复免费版 编辑:程序博客网 时间:2024/05/16 00:29
Problem Description
要求(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
数论简单题。
求的是(A/B)%9973,由于除法的%有特殊的性质,所以我们可以通过ex_gcd,求出B的逆元,从而求解
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;typedef long long ll;const int mod=9973;ll extend_gcd(ll a,ll b,ll &x,ll &y){ if(a==0&&b==0) return -1; if(b==0){x=1;y=0;return a;} ll d=extend_gcd(b,a%b,y,x); y-=a/b*x; return d;}ll inv(ll a,ll n){ ll x,y; ll d=extend_gcd(a,n,x,y); if(d==1) return (x%n+n)%n; else return -1;}int main(){ int t; scanf("%d",&t); while(t--) { ll n,b; scanf("%lld%lld",&n,&b); ll ans=inv(b,mod); printf("%I64d\n",n*ans%mod); } 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
- 解决Intellij Javadoc 插件配置页消失、interface接口类无法生成的问题
- 阅读小结:Unsupervised Representation with Deep Convolutional Generative Adversarial Networks
- Android控制UI界面的三种方式
- AIM Tech Round 3 (Div. 2) -- B. Checkpoints (枚举)
- android的getResponseCode()问题
- hdoj-1576-A/B
- 铅笔画算法
- 普通web项目转化为maven web项目
- Xamarin.Android APK 减肥记
- 百度地图开发(记录)
- 简单倒计时
- Java StringBuilder和StringBuffer的区别
- 在eclipse中将android项目生成apk并且给apk签名
- codeforces 149D Coloring Brackets(区间dp)