exgcd貌似可以AC(需要加快写)
查看原帖
exgcd貌似可以AC(需要加快写)
1074084
asd890123楼主2024/6/13 17:53
#include <cstdio>
#include <tuple>

namespace QuikIO{
    
    const int size = 1 << 25;
    char out[size],*p3 = out;
    
    #define putchar(c) (*p3++ = c)
    struct Flush{~Flush(){fwrite(out,1,p3 - out,stdout);}}_;
    
    void write(int x){
        
        if (x > 9) write(x / 10);
        putchar(x % 10 + '0');
        
    }
    
    void print(int x,char end = '\n'){
        
        write(x);
        putchar(end);
        
    }
    
}using QuikIO::print;

std::tuple <int,int> exgcd(int a,int b){
    
    if (b == 0) return {1,0};
    auto [x0,y0] = exgcd(b,a % b);
    
    return {y0,x0 - a / b * y0};
}

int inv(int a,int p){return (std::get<0>(exgcd(a,p)) + p) % p;}

int main(){
    
    int n,p;
    
    scanf("%d%d",&n,&p);
    for (int i = 1;i <= n;i++) print(inv(i,p));
    
    return 0;
}

如此帖涉嫌泄漏题解,请删除

2024/6/13 17:53
加载中...