题解——洛谷P2613 【模板】有理数取余(扩展欧几里得算法+逆元)
题面
题目描述
给出一个有理数 c=\frac{a}{b} ,求 c mod19260817 的值。
输入输出格式
输入格式:
一共两行。
第一行,一个整数 \( a \) 。
第二行,一个整数 \( b \) 。
输出格式:
一个整数,代表求余后的结果。如果无解,输出Angry!
说明
对于所有数据,\( 0\leq a,b \leq 10^{10001},0≤a,b≤1010001 \)
很平常的一道膜板题,求解除法取模需要利用乘法逆元的知识
直接扩展欧几里得算法求解逆元
至于数据范围,可以直接在读入时取模,不需要毒瘤高精度qwq
下面放代码
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
long long a,b;
const int MOD = ;
long long read(void){
long long x=;
char c;
c=getchar();
while(c==' '||c=='\n'||c=='\r'||c=='\0')
c=getchar();
while(c<=''&&c>=''){
x=((x*%MOD)+(c-'')%MOD)%MOD;
c=getchar();
}
return x;
}
long long exgcd(long long a,long long b,long long &x,long long &y){
if(b==){
x=;
y=;
return a;
}
long long res = exgcd(b,a%b,x,y);
long long t=x;
x=y;
y=t-a/b*y;
return res;
}
int main(){
a=read();
// printf("%d\n",a);
b=read();
// printf("%d\n",b);
long long x,y;
if(exgcd(b,MOD,x,y)==){
long long nx=((x%MOD)+MOD)%MOD;
printf("%lld",((a%MOD)*(nx%MOD))%MOD);
}
else{
printf("Angry!\n");
}
return ;
}
题解——洛谷P2613 【模板】有理数取余(扩展欧几里得算法+逆元)的更多相关文章
- [洛谷P2613] [模板] 有理数取余
刷水题. 传送门 看似高精而非高精乃是此题最大亮点. 边读边取模技能get~ #include<cstdio> #define ll long long #define mod 19260 ...
- 题解 洛谷 P3210 【[HNOI2010]取石头游戏】
考虑到先手和后手都使用最优策略,所以可以像对抗搜索一样,设 \(val\) 为先手收益减去后手收益的值.那么先手想让 \(val\) 尽可能大,后手想让 \(val\) 尽可能小. 继续分析题目性质, ...
- 洛谷 P2613 【模板】有理数取余
P2613 [模板]有理数取余 题目描述 给出一个有理数c=\frac{a}{b}c=ba,求c\ \bmod 19260817c mod19260817的值. 输入输出格式 输入格式: 一共两行. ...
- 洛谷——P2613 【模板】有理数取余
P2613 [模板]有理数取余 读入优化预处理 $\frac {a}{b}\mod 19620817$ 也就是$a\times b^{-1}$ $a\times b^{-1}\mod 19620817 ...
- P2613 【模板】有理数取余 (数论)
题目 P2613 [模板]有理数取余 解析 简单的数论题 发现并没有对小数取余这一说,所以我们把原式化一下, \[(c=\frac{a}{b})\equiv a\times b^{-1}(mod\ p ...
- 洛谷P3373 [模板]线段树 2(区间增减.乘 区间求和)
To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格 ...
- 模板 - 数学 - 同余 - 扩展Euclid算法
普通的扩展欧几里得算法,通过了洛谷的扩展欧几里得算法找乘法逆元.修复了容易溢出的bug,虽然新版本仍有可能会溢出longlong,假如参与运算的数字都是longlong,假如可以的话直接使用__int ...
- 模板——扩展欧几里得算法(求ax+by=gcd的解)
Bryce1010模板 /**** *扩展欧几里得算法 *返回d=gcd(a,b),和对应等式ax+by=d中的x,y */ long long extend_gcd(long long a,long ...
- 初等数论-Base-2(扩展欧几里得算法,同余,线性同余方程,(附:裴蜀定理的证明))
我们接着上面的欧几里得算法说 扩展欧几里得算法 扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式\(^①\): ax+by = gcd(a, b) =d(解一定存在,根据数论中的 ...
随机推荐
- VM虚拟机配置固定IP
linux下vmware桥接模式.静态ip上外网的配置 http://blog.csdn.net/zdh_139/article/details/73456654 虚拟机网络改成桥接模式 vi /et ...
- Impala 学习
Impala 基础知识介绍与学习,参考文章: Impala-大数据时代快速SQL引擎 https://blog.csdn.net/kangkangwanwan/article/details/7865 ...
- c# 图像呈现控件PictureBox
在c#中可以使用PictureBox控件来呈现图像,图像资源可以来自文件,也可以是存在内存中的位图对象.可以显示本地图像文件或来自网络的图片,也可以来自项目文件中的图像. 从URI加载图像文件. 调用 ...
- c# 设置控件的前景颜色和背景颜色
AutoSize:设置为false取消自动计算尺寸功能,控件的大小则按照设定的Size来呈现,设置为true自动计算大小 TextAlign:设置对齐方式 // // 摘要: // 用默认的所有者运行 ...
- 证券化代币的时代已经到来,STO将引爆区块链经济
STOs 似乎会在 2019 年取代 ICOs,即使不是完全取代,但置换的比例也会相当大.所有在美上市的公司都将按照 SEC 制定的相关规定进行交易.Vellum Capital 的 CEO 兼管理合 ...
- docker能用来干嘛
http://blog.csdn.net/wangtaoking1/article/details/44340445 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初 ...
- byte & 0xff char 转换
https://blog.csdn.net/lixingtao0520/article/details/75450883 版权声明:本文为博主原创文章,转载请注明作者与出处,http://blog.c ...
- JustOj 1910: 人见人爱A+B
[提交][状态][讨论版] 题目描述 北大的acm上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱. ...
- JustOj 1486: Hello, world!
题目描述 This is the first problem for test. Since all we know the ASCII code, your job is simple: Input ...
- How to do if the GM MDI cant connect with the software
When you use GM MDI on your laptop , you may meet some troubles . Such as it cant communicate with t ...