• [FOJ 1752] A^B mod C


    Problem 1752 A^B mod C

    Accept: 750    Submit: 3205
    Time Limit: 1000 mSec    Memory Limit : 32768 KB

     Problem Description

    Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,B,C<2^63).

     Input

    There are multiply testcases. Each testcase, there is one line contains three integers A, B and C, separated by a single space.

     Output

    For each testcase, output an integer, denotes the result of A^B mod C.

     Sample Input

    3 2 4 2 10 1000

     Sample Output

    1 24
     
    二分快速幂模板题
    #include <iostream>
    #include <cstdio>
    using namespace std;
    #define ll __int64
    
    ll quickadd(ll a,ll b,ll c)    //运用快速幂的思想快速加,这样就不会溢出
    {
        ll ret=0;
        while(b)
        {
            if(b&1)
            {
                ret+=a; 
                if(ret>=c) ret-=c; //这样比直接取模(ret%=c)更快
            }
            a<<=1;
            if(a>=c) a-=c;
            b>>=1;
        }
        return ret;
    }
    ll quickpow(ll a,ll b,ll c)
    {
        ll ret=1;
        while(b)
        {
            if(b&1) ret=quickadd(a,ret,c);
            a=quickadd(a,a,c);
            b>>=1;
        }
        return ret;
    }
    int main()
    {
        ll a,b,c;
        while(scanf("%I64d%I64d%I64d",&a,&b,&c)!=EOF)
        {
            printf("%I64d
    ",quickpow(a%c,b,c));
        }
        return 0;
    }
    趁着还有梦想、将AC进行到底~~~by 452181625
  • 相关阅读:
    子矩阵
    [Ahoi2008]Meet 紧急集合
    立体图
    CF933B A Determined Cleanup
    CF746G New Roads
    树的重量
    CF519E A and B and Lecture Rooms
    矩阵
    深入浅出乘法逆元
    20180519模拟赛T2——pretty
  • 原文地址:https://www.cnblogs.com/hate13/p/4123380.html
Copyright © 2020-2023  润新知