1200 同余方程 2012年NOIP全国联赛提高组
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 钻石 Diamond
题目描述 Description
求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解。
输入描述 Input Description
输入只有一行,包含两个正整数 a, b,用 一个 空格隔开。
输出描述 Output Description
输出只有一行包含一个正整数x0,即最小正整数解,输入数据保证一定有解。
样例输入 Sample Input
3 10
样例输出 Sample Output
7
数据范围及提示 Data Size & Hint
【数据范围】
对于 40% 的数据, 2 ≤b≤ 1,000 ;
对于 60% 的数据, 2 ≤b≤ 50,000,000
对于 100% 的数据, 2 ≤a, b≤ 2,000,000,000
分类标签 Tags
欧几里德定理 数论 大陆地区 NOIP全国联赛提高组 2012年

/*
求关于x的模线性方程
ax≡1(mod b)的最小正整数解.
我们可以转化求不定方程ax+by=1的根来求.
若方程有整数解 则gcd(a,b)=1(即 1|gcd(a,b)).
求出一组解(x0,y0).
然后特殊地此题gcd(a,b)=1.
so x+b/gcd(a,b)等价于x+b.
又因为是mod b的剩余系中.
so ans=(x+b)%b.
观察此式 可知x是a关于mod y剩余系下的逆元.
若b为质数 则由费马小定理
a^(p-1)=1,可知a^(p-2)为逆元.
*/
#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;
LL x,y;
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*f;
}
void ex_gcd(LL a,LL b,LL &x,LL &y)
{if(!b) {x=1,y=0;return ;}else ex_gcd(b,a%b,y,x),y-=(a/b)*x;
}
int main()
{LL a,b;a=read(),b=read();ex_gcd(a,b,x,y);cout<<(x+b)%b;return 0;
}
/*
看到网上有这种做法.
挺巧妙的.
由欧拉函数性质:a^phi(b)%b=1.
so a*a^(phi(b)-1)%b=1.
so 该方程的解为x=a^(phi(b)-1).
so 在mod b剩余系下
最小正整数解为x=a^(phi(b)-1)%b.
然后枚举因子求phi(b),快速幂求a^(phi(b)-1)%b.
特殊地若b为质数
由欧拉函数性质phi(b)=b-1.
即求a^(b-2)%b.(和费马小定理的结论一样....)
*/
#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;
LL x,y,s,ans,a,b;
inline LL read()
{LL x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*f;
}
void eu()
{LL n=b;ans=n;for(int i=2;i*i<=n;i++){if(!(n%i)){while(!(n%i)) n/=i;ans=ans/i*(i-1);}}if(n>1) ans=ans/n*(n-1);
}
LL mi(LL a,LL p)
{LL tot=1;while(p){if(p&1) tot=tot*a%b;a=a*a%b;p>>=1;}return tot;
}
int main()
{a=read(),b=read();eu();ans=mi(a,ans-1)%b;cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/nancheng58/p/10068157.html

Codevs 1200 同余方程 2012年NOIP全国联赛提高组相关推荐

  1. 【codevs 1315】1315 摆花2012年NOIP全国联赛普及组(dp)

    1315 摆花2012年NOIP全国联赛普及组  时间限制: 1 s   空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description     小明的花店新开张,为 ...

  2. 1313 质因数分解 2012年NOIP全国联赛普及组

    1313 质因数分解 2012年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题目描述 Description 已知正整数 n是两个不同 ...

  3. 1316 文化之旅 2012年NOIP全国联赛普及组

    1316 文化之旅 2012年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有一位使者要游历各国,他每到一 ...

  4. Codevs 1066 引水入城 2010年NOIP全国联赛提高组

    1066 引水入城 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 在一个遥远的国度 ...

  5. 过河 2005年NOIP全国联赛提高组(离散化+dp)

    1105 过河 2005年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description 在河上有一 ...

  6. 1099 字串变换 2002年NOIP全国联赛提高组

    1099 字串变换 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 已知有两个字串 A ...

  7. 聪明的质监员 2011年NOIP全国联赛提高组(二分+前缀和)

    聪明的质监员 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 小 T 是一名质量监督员, ...

  8. Codevs 1066 引水入城 2010年NOIP全国联赛提高组 BFS + 贪心

    Codevs 1066 引水入城 题目上没有给出样例二,只给出了样例二的图,真是奇怪(丧心病狂). Input2: 3 6 8 4 5 6 4 4 7 3 4 3 3 3 3 2 2 1 1 2 Ou ...

  9. codevs 1043 方格取数 2000年NOIP全国联赛提高组

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而 ...

  10. 棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组

    /* 这道题要解决两个问题1)状态和状态方程2)怎么保证每走一步,所形成的路径不相交,以保证最后生成的完整路径不相交.(1)状态: dp[i][j][k][l] = 小渊传递的纸条到[i][j]的位置 ...

最新文章

  1. 用户切换命令:su 与 sudo
  2. 数字信号处理基础----FM的调制与解调
  3. 安师大计算机与信息学院导师,安徽师范大学数学计算机科学学院导师介绍:罗永龙...
  4. 设置VS2010中使用IntelliTrace来进行调试
  5. Android Studio Linking an external C++ project 时候 报Invalid file name. Expected: CMakeLists.txt
  6. Spring Cloud Alibaba Nacos Confifig是什么
  7. kettle数据库操作OPTION SQL_SELECT_LIMIT=DEFAULT问题解决
  8. 构建之法第四章--两人合作
  9. .NET笔试题集(二)
  10. Oracle 学习笔记二 Create table
  11. 协同过滤介绍和简单推荐系统的实现
  12. python widget_python 图形界面
  13. 虚拟 IO 服务器(VIOS)和 IBM i
  14. androidstudio身高预测app
  15. cairo填充_用 cairo 实现跨平台图形
  16. 微服务架构深度解析与最佳实践
  17. linux查看进程被kill原因,定位Linux下定位进程被谁KILL
  18. java.io.IOException: java.io.FileNotFoundException: C:\Users\26904\AppData 找不到指定的路径,自动跑到C盘里找,太离谱了。
  19. 如何重启MySQL服务,正确重启mysql
  20. 你看到的都是招数,不是内功

热门文章

  1. codesys中打开linux端的串口_机械臂和移动机器人,CoDeSys介绍
  2. SpringBoot Starter自动装配的原理
  3. Mac设置VMARE FUSION虚拟机网卡
  4. Access to XMLHttpRequest at ‘url‘ from origin ‘null‘ has been blocked by CORS policy: Request header
  5. exists sql用法_《SQL进阶教程》笔记(3)
  6. SpringMVC之安全性(一)
  7. 【渝粤教育】国家开放大学2018年秋季 1121t健康教育与健康促进 参考试题
  8. 21秋期末考试成本会计10168k2
  9. 【渝粤教育】国家开放大学2019年春季 2718动物生理基础 参考试题
  10. 【sklearn第二十八讲】验证曲线