Mr. Panda and Kakin(拓展欧几里得 + O(1)快速乘)
Mr. Panda and Kakin
#include <bits/stdc++.h>using namespace std;long long n, c, phi, inv;inline long long mul(long long x, long long y, long long mod) {return (x * y - (long long)((long double)x / mod * y) * mod + mod) % mod;
}long long exgcd(long long a, long long b, long long & x, long long & y) {if(!b) {x = 1, y = 0;sreturn a;}long long gcd = exgcd(b, a % b, x, y);long long temp = x;x = y;y = temp - a / b * y;return gcd;
}long long quick_pow(long long a, long long n, long long mod) {long long ans = 1;while (n) {if (n & 1) {ans = mul(ans, a, mod);}a = mul(a, a, mod);n >>= 1;}return ans;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);int T, cas = 0;scanf("%d", &T);while (T--) {scanf("%lld %lld", &n, &c);long long p = sqrt(n), q;while (true) {if (n % p == 0) {break;}p--;}q = n / p;phi = (p - 1) * (q - 1);exgcd((1ll << 30) + 3, phi, inv, p);inv = ((inv % phi) + phi) % phi;printf("Case %d: %lld\n", ++cas, quick_pow(c, inv, n));}return 0;
}
Mr. Panda and Kakin(拓展欧几里得 + O(1)快速乘)相关推荐
- poj1061-青蛙的约会(拓展欧几里得java)
题目: 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚 ...
- 拓展欧几里得模板/求逆元模板(java)
拓展欧几里得模板 参考:哈尔滨理工大学ACM培训资料汇编/ACM-ICPC培训资料汇编* 基本原理 :设 a 和 b 不全为 0,则存在整数 x,y 使得 xa yb=gcd(a,b)=c 对于辗转相 ...
- 杭电2669拓展欧几里得
杭电2669 给a,b求Xa Yb = 1.如果没有则输出sorry. 可以通过拓展欧几里得指导Xa Yb = gcd(a,b). 不言而喻要判断gcd(a,b)是否等于1.如果不等于1,那么就是so ...
- A/B HDU - 1576 (逆元或拓展欧几里得或数学公式)多解法求大数结果
题意:求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). 思维:(1)逆元+扩展欧几里得算法:满足a*k≡1 (mo ...
- 拓展欧几里得小结(初级理解)
什么是拓展欧几里得?简单的说,就是求关于x,y的方程 ax + by = gcd(a,b) 的所有整数解 现在我们令g = gcd(a,b)则方程变成了ax + by = g 假如我们现在知道了关于这 ...
- 拓展欧几里得 [Noi2002]Savage
对于一个野人,他(她?)所在的位置,(C[i]+x*p[i])%ans,是的,暴力枚举每一个ans,用拓展欧几里得求出每两个wildpeople(wildrage?)相遇的年份,如果小于最小的寿限(就 ...
- AcWing 878. 线性同余方程(拓展欧几里得)
题目链接 https://www.acwing.com/problem/content/880/ 思路 ai×xi≡bi(modmi)a_i\times x_i≡b_i(mod \ m_i)ai×x ...
- 数学--数论--欧几里得定理和拓展欧几里得定理
欧几里得定理: gcd(a, b) = gcd(b, a%b) 证明: 我们首先约定:m = gcd(a,b) , n = gcd(b, q) , a = b*p +q.(这里的gcd含义跟上面一样, ...
- POJ1061青蛙的约会(拓展欧几里得)
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 146847 Accepted: 34169 Description ...
最新文章
- pstree进程管理
- GeoTrust 企业(OV)型 SSL证书
- FastDFS安装、配置、部署(一)
- DataGridView的DataGridViewComboBoxColumn列点击一次
- Java多线程复习_Java多线程复习
- python ctp接口_使用ctp的python接口
- postgresql对于HashJoin算法的Data skew优化与MCV处理
- 电脑手机wifi互传文件_安卓手机文件互传
- [文摘20110527] 小故事 : 大有 和 天成 都是一辈子
- 代理(Proxy)和背靠背用户代理(B2BUA)
- f018计算机辅助设计是什么,F018,丝印Marking-电子元件丝印查询
- png图片格式转换器_如何将图像转换为PNG格式
- 读文献——《Deep Residual Learning for Image Recognition》
- css3八卦,CSS3 阴阳八卦(太极)图动画
- [算法] 剑指offer2 golang 面试题2:二进制加法
- Java攻略之API
- linux文件目录挂载点,挂载点 文件通配符 目录的一些理解
- Hive元数据信息获取
- 好系统教你如何更改Windows 10中的用户帐户控制(UAC)设置
- 美法官:甲骨文与谷歌专利诉讼无法和解
热门文章
- python数据分析软件_Python数据分析工具
- 表白和被表白时遇到的骚操作,最后一个天秀!| 今日最佳
- 入门Python,限时1元!
- AI催生新的工作机遇:5个未来会很吃香的岗位
- html试题及答案,HTML试题及答案
- mysql快照过久_Oracle 快照(snapshot) 管理
- eomj表情 mysql_mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: #3...
- 六元均匀直线阵的各元间距为_实验二 均匀直线阵
- mac mysql 移动硬盘_MAC一些高能过程记录(一些没必要的坑)
- c++ 读文件_第十六节:读文件,文件的创建,写文件,文件的读写以及鼠标键盘事件和图形绘制...