有理数取余

Posted aprincess

tags:

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

dalao原文  https://www.luogu.org/blog/cicos/solution-p2613

 

#include <bits/stdc++.h>
using namespace std;

const int MOD = 19260817;//MOD是题解中的"p"
int x, y;

inline int getint()
    int res = 0, ch = getchar();
    while(!isdigit(ch) and ch != EOF)
        ch = getchar();
    while(isdigit(ch))
        res = (res << 3) + (res << 1) + (ch - 0);
        res %= MOD;//直接对MOD取余
        ch = getchar();
    
    return res;

void exgcd(int a, int b)
    if(b == 0)
        x = 1;
        y = 0;
        return;
    
    exgcd(b, a % b);
    int Last_x = x;
    x = y;
    y = Last_x - a / b * y;

int main()
    int a, b;
    a = getint();
    b = getint();
    if(b == 0)
        puts("Angry!");
        return 0;
    
    exgcd(b, MOD);
    x = (x % MOD + MOD) % MOD;
    printf("%lld\n", a * (long long)(x) % MOD);//小心相乘后爆int

 

以上是关于有理数取余的主要内容,如果未能解决你的问题,请参考以下文章

[模板] 有理数取余

有理数取余

题解 P2613 模板有理数取余

Luogu P2613 模板有理数取余

买书实验

HTML学习 JavaScript(运算符)