浙江2012年省赛J题 Modular Inverse

Modular Inverse

Time Limit: 2000MS   Memory Limit: 65535KB   64bit IO Format:

Submit Status

Description

The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1x (mod m). This is equivalent to ax≡1 (mod m).

Input

There are multiple test cases. The first line of input is an integer T ≈ 2000 indicating the number of test cases.

Each test case contains two integers 0 < a ≤ 1000 and 0 < m ≤ 1000.

Output

For each test case, output the smallest positive x. If such x doesn‘t exist, output "Not Exist".

Sample Input

3
3 11
4 12
5 13

Sample Output

4
Not Exist
8

Hint

Source

浙江2012年省赛J题

(a*x)%m=1 扩展欧几里得求ax+my=1  x>0的最小整数解

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define ll __int64
 5
 6 ll x, y;
 7 ll exgcd(ll a, ll b){
 8     if(b == 0){
 9         x = 1;
10         y = 0;
11         return a;
12     }
13     ll d = exgcd(b, a%b);
14     ll t = x;
15     x = y;
16     y = t-a/b*y;
17     return d;
18 }
19
20 int main(){
21     ll a, b, T;
22     scanf("%I64d",&T);
23     while(T--){
24         scanf("%I64d%I64d",&a,&b);
25         if(b==1){
26             printf("1\n");
27             continue;
28         }
29         //cout<<a<<b<<endl;
30         //ll g = 0;
31         ll g = exgcd(a, b);
32         if(g == 1){
33             while(x < 0){
34                 x += b;
35                 y -= a;
36             }
37             printf("%I64d\n",x);
38         }
39         else
40             printf("Not Exist\n");
41     }
42     return 0;
43 }
时间: 2024-10-12 22:57:54

浙江2012年省赛J题 Modular Inverse的相关文章

hdu4271 Find Black Hand 2012长春网络赛E题 最短编辑距离

hdu4271 Find Black Hand  2012长春网络赛E题  最短编辑距离 Find Black Hand Time Limit : 5000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 19   Accepted Submission(s) : 1 Problem Description I like playing game with my friend

Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

Time Limit: 5000MS Memory limit: 65536K 题目描写叙述 Haveyou ever played a popular game named "Fruit Ninja"? Fruit Ninja (known as Fruit Ninja HD on the iPad and Fruit Ninja THD for NvidiaTegra 2 based Android devices) is a video game developed by Hal

西电校赛网络赛J题 lucas定理计算组合数

西电校赛网络赛J题  lucas定理计算组合数 问题 J: 找规律II 时间限制: 1 Sec  内存限制: 128 MB 提交: 96  解决: 16 [提交][状态][讨论版] 题目描述 现有数阵如下: 1    2  3   4     5    6 1   3   6  10  15 1   4  10   20 1   5   15 1    6 1 求这个数阵的第n行m列是多少(行列标号从1开始) 结果对10007取模 输入 多组数据,每组数据一行,包含两个整数n,m(1<=n<=

HDU 4462 Scaring the Birds (2012年杭州赛区现场赛J题)

1.题目描述:点击打开链接 2.解题思路:本题是一道简单模拟题.不过重点还是对于题目细节的理解.容易犯2个理解错误:(1)误以为是每个稻草人有不同的scaring range,实际上scaring range是由不同的vacant intersection决定的,跟稻草人毫无关系.(2)误以为所有点都需要被覆盖,实际上题目要求的是只要所有corn被保护就行,插稻草人的地方本来就是空地,有没有被保护无所谓的.由于题目给的范围非常小,完全可以通过枚举集合来确定哪些位置需要稻草人,如果这些稻草人成功的

青岛理工ACM交流赛 J题 数格子算面积

数格子算面积 Time Limit: 1000MS Memory limit: 262144K 题目描述 给你一个多边形(用’\’和’/’表示多边形的边),求多边形的面积. 输入 第一行两个正整数h 和 w (2 ≤ h, w ≤ 100),h是多边形所在平面的高,w是多边形所在平面的宽,接下来h行,每行w个字符,描述了整个平面的每个单元(每个单元是一个单位面积),字符只会是’\’,’/’和’.’其中之一,’\’,’/’表示多边形的边,’.’表示空白单元. 输出 输出一个数,输入代表的平面内多边

HDU-4451-Dressing (2012年金华赛区J题)

Dressing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2674    Accepted Submission(s): 1179 Problem Description Wangpeng has N clothes, M pants and K shoes so theoretically he can have N×M×K

HDU 5006 Resistance(鞍山网络赛J题)

HDU 5006 Resistance 思路:这题由于数据是随机的..电阻不是1就是0,就可以先缩点,把电阻为0的那些边缩掉,只考虑有电阻的边,这样的话缩下来点数就不多了,就可以利用高斯消元+基尔霍夫定律去搞了 代码: #include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <algorithm> using namespace std; c

ZOJ 3818 Pretty Poem (2014年牡丹江赛区网络赛J题)

1.题目描述:点击打开链接 2.解题思路:本题是一道模拟题,输入一个串,要求判断是否形如"ABABA"或"ABABCAB".只需要对两种情况逐一尝试即可.然而这道题有诸多细节需要考虑.这里说一下我自己的方法. 首先,如果输入的串长度<5,那么直接输出No,或者去掉所有的标点后发现长度<5,输出No.长度上没问题后,写一个专门的solve(int type)函数,来判断是否是上述情况中的一种.对于第一种,只需要枚举A的长度即可,B的长度就是(len-3*i

2017acm南宁现场赛 J题 Rearrangement

题意: 给定一个2 * n的矩阵, 和 2 * n 个数, 问能不能通过重排列, 使得任意相邻两数不能被3整除 分析: 这题一直卡到最后, 赛后经对面大佬提醒后, 发现统计所有数模三的结果(0,1,2三种), 然后考虑怎么去"构造"符合这样的矩阵就行. 本地只过了用例和一些小数据, 等一个重现赛. 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 10000 + 7; 4 int n;