有麻烦请先笑笑

萩 x H

我的时间很少,但我却有很多想法

数论笔记--阶乘求逆元

### 阶乘求逆元模板

#include <bits/stdc++.h>
using namespace std;
void ExPower( int b, int p, int & a, int & k ) {
    if( p == 0 ) {
        a = 1; k = 0;
        return;
    }
    ExPower( p, b % p, k, a );
    k -= b / p * a;
    return;
}
int main() {
    int b, p;
    cin >> b >> p;
    int a, k;
    ExPower( b, p, a, k );
    if( a < 0 ) a += p;
    cout << a << endl;
    return 0;
}
int inv( int b, int p ) {
    int a, k;
    exPower( b, p, a, k );
    if( a < 0 ) a += p;
    return a;
}
void init( int n ) {
    Fact[ 0 ] = 1;
    for( int i = 1; i <= n; ++i ) Fact[ i ] = Fact[ i - 1 ] * i % Mod;
    INV[ n ] = inv( Fact[ n ], Mod );
    for( int i = n - 1; i >= 0; --i ) INV[ i ] = INV[ i + 1 ] * ( i + 1 ) % Mod;
    return;
}
Inv[ 1 ] = 1;
for( int i = 2; i <= n; i++ )
    Inv[ i ] = ( p - p / i ) * Inv[ p % i ] % p;

 

posted @ 2020-12-25 11:21  萩xh  阅读(25)  评论(0)    收藏  举报