[模板]快速冪、加法慢速機

  看起來好醜QQ

ll FAST(ll _a, ll _b, ll _mod)
{
    ll _res = 1;
    while(_b)
    {
        if(_b&1)
        {
            _res *= _a;
            if(_mod) _res %= _mod;
        }
        _b >>= 1; 
        _a *= _a;
        if(_mod) _a %= _mod;
    }
    return _res;
}

  
  加法慢速機,應該是這樣寫的吧?之前寫了一個錯的,所以不確定這次對不對?

ll PLUS(ll _a, ll _b, ll _mod)
{
    ll _res = 1;
    while(_b)
    {
        if(_b&1) _a += _res, _a %= _mod;
        _b >>= 1;
        _res <<= 1; 
    }
    return _a;
}

留言

這個網誌中的熱門文章

Shellshock.io從入門到上手(針對單狙)(沒有圖片、影片版本)

[TIOJ] 1007燈泡問題