逆元模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆元模板相关的知识,希望对你有一定的参考价值。

 1 /****************************************
 2         A/B(hdu 1576)
 3     求逆元模板(求(1/b)%p的值,p位素数)
 4     
 5     令(1/b)%p=x (x为结果)
 6     1/b=x+k*p (k未知)
 7     1=x*b+k*p*b (左右同时模p)
 8     1=x*b%p (1%p=1;k*p*b%p=0)
 9     1+y*p=x*b
10     1=x*b-y*p;
11     用扩展欧几里得就可求出x的值了
12 
13 *****************************************/
14 
15 #include<iostream>
16 using namespace std;
17 int p=9973;
18 
19 ///扩展欧几里得算法模板
20 int extendGcd(int a,int b,int &x,int &y)
21 {
22     if (b==0)
23     {
24         x=1;
25         y=0;
26         return a;
27     }
28     int d= extendGcd(b,a%b,y,x);
29     y-=a/b*x;
30     return d;
31 }
32 
33 ///逆元模板
34 int mod_reverse(int b,int p)
35 {
36     int x,y;
37     int d = extendGcd(b,p,x,y);
38     return x;
39 }
40 
41 int main()
42 {
43     int a,b,t;
44     cin>>t;
45     while (t--)
46     {
47         cin>>a>>b;
48         int x=mod_reverse(b,p);
49         x=(x%p+p)%p;
50         int ans=a*x%p;
51         cout<<ans<<endl;
52     }
53 }

 

以上是关于逆元模板的主要内容,如果未能解决你的问题,请参考以下文章

逆元模板

P3811 模板乘法逆元

乘法逆元(模板)

乘法逆元模板

洛谷 P3811 模板乘法逆元 如题

模板乘法逆元