中南大学2012暑期集训中期检测训练赛-求逆元
来源:互联网 发布:php curl 图片 编辑:程序博客网 时间:2024/04/29 05:22
Problem A: 求逆元
Time Limit: 1 Sec Memory Limit: 2 MBSUBMIT: 232 Solved: 77
[SUBMIT][STATUS]
Description
给定正整数x,y,求最小的正整数z使得x*z mod y = 1。
Input
多组数据,每行两个整数x,y 空格隔开。2 <= x, y < 10^6。
Output
输出所求的数,如果小于y的数中不存在这样的数,输出No。
Sample Input
2 36 11
Sample Output
22
HINT
思路:原方程x*z mod y = 1可转移为:x*z-y*b=1,明显的扩展欧几里德,直接套模板。
#include<stdio.h> int exgcd(int a,int b,int &x,int &y) { int i,j; if(b==0) { x=1; y=0; return a; } i=exgcd(b,a%b,x,y); j=x; x=y; y=j-a/b*y; return i; } int main() { int a,b,x,y,r; while(scanf("%d %d",&a,&b)!=EOF) { r=exgcd(a,b,x,y); if(r==1) { while(x<0) { x+=b; y-=a; } printf("%d\n",x); }else printf("No\n"); } return 0; }
- 中南大学2012暑期集训中期检测训练赛-求逆元
- 中南大学2012暑期集训中期检测训练赛“跳跳”解题报告
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- csu 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- 2132: 中南大学2017年ACM暑期集训前期训练题集(入门题)
- CSU--------2133: 中南大学2017年ACM暑期集训前期训练题集(基础题)
- 2017年5月月赛-暨中南大学暑期集训选拔赛第一场-部分题目
- 2144: 2017年6月月赛-暨中南大学暑期集训选拔赛第二场
- 大一暑期集训训练赛一
- 烟台大学acm暑期集训总结
- 浙江中医药大学暑期训练测试赛八A
- 浙江中医药大学暑期训练测试赛八B
- 浙江中医药大学暑期训练测试赛八C
- 浙江中医药大学暑期训练测试赛八F
- POJ3185高斯消元
- Android生成一个指定大小的图片
- android中的接口和java中的接口
- 解决 Python.h:没有那个文件或目录 错误的方法
- 一只兔子的故事 花你三分钟,可能影响你一生
- 中南大学2012暑期集训中期检测训练赛-求逆元
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- 程序员节快乐:扔掉代码一起庆祝
- Eclipse使用SVN
- 有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
- 初学jacob
- 腾讯微博为何干不过新浪?
- android wifi 无线调试
- 这是为什么呢??