洛谷p2613【模板】有理数取余
2024-08-23 12:03:14
\(c\)等于一个分数,求他的余数,分数是不能直接模的,除以一个数等于乘上这个数的逆元。
所以此题就是求一个逆元,费马小定理求逆元是很方便的,一个快速幂就解决了。
还要注意因为\(a,b\)的值都很大,在读入的时候需要取模
但是这样只能拿到\(90\)分,最后一个点过不了,什么原因?我们还没有判断这个\(b\)是否有逆元,判断这个数是否有逆元的方法,也不难,只需判断\(gcd(b, mod)\)是否为\(1\)即可。
话说我自己写过博客的我都忘了,做题的时候回来看的\(233\)
貌似博客里写的东西还出锅了,又被\(lfd\)一顿嘲笑。\(233\)(卑微.jpg
他讲的数论我当时确实是听得很明白啊,可是后来又忘了......
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 19260817;
long long a, b, ans;
long long read() {
long long s = 0, w = 1;
char ch = getchar();
while(!isdigit(ch)) {if(ch == '-') w = -1; ch = getchar();}
while(isdigit(ch)) s = s * 10 + ch - '0', s %= N, ch = getchar();
return s * w;
}
long long power(long long x, long long y) {
long long sum = 1;
while(y) {
if(y & 1) sum = (sum * x) % N;
x = (x * x) % N;
y >>= 1;
}
return sum;
}
long long gcd(long long x, long long y) {
return y == 0 ? x : gcd(y, x % y);
}
int main() {
a = read(), b = read();
if(gcd(b, N) != 1) printf("Angry!\n");
else cout << (a * power(b, N - 2)) % N << endl;
return 0;
}
谢谢收看,祝身体健康!
最新文章
- 创建maven项目(cmd 命令)
- 小谈一下JavaScript中的JSON
- [Java] 特殊正则-替换字符串
- Javascript高级程序设计——javascript简介
- GO语言练习:channel select 超时机制
- zk源码环境搭建
- [Android] emualtor-5554 offline的解决方法
- hihocoder 1196 高斯消元.二
- [BS-06] 设置release发布时NSLog不打印设置
- 【JQGRID DOCUMENTATION】.学习笔记.6.Editing:Common Rules
- tomcat配置及使用 环境变量设置
- PAT-乙级-1029. 旧键盘(20)
- ListBox获取行字符串
- git常见指令
- Reverse Linked List II 解答
- JSP指令 include 和forward
- VMWARE使用问题
- 基于visual Studio2013解决C语言竞赛题之1088模拟计算器
- 调用QQ聊天功能
- java swing button和键盘监听冲突问题
热门文章
- LeetCode 328:奇偶链表 Odd Even Linked List
- flink solt,并行度
- HashMap的底层原理(jdk1.7.0_79)
- Oracle 增删改(INSERT、DELETE、UPDATE)语句
- Serverless 的喧哗与骚动(一)附Serverless行业发展回顾
- springboot2使用外部的tomcat服务器创建项目步骤
- 【java提高】---patchca生成验证码
- C# based on PdfSharp to split pdf files and get MemoryStream C#基于PdfSharp拆分pdf,并生成MemoryStream
- ASP.NET Core 3.0 使用AspectCore-Framework实现AOP
- Docker install in Linux