poj 1995 Raising Modulo Numbers(快速幂模板)

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn=50000;
int m,h;
long long ans;
long long QMulti(long long a,long long n)
{
    long long ans=1;
    while(n)
    {
        if(n&1)
            ans=(ans*a)%m;
        a=(a*a)%m;
        n>>=1;
    }
    return ans;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        ans=0;
        scanf("%d%d",&m,&h);
        for(int i=0; i<h; i++)
        {
            long long a,b;
            scanf("%I64d%I64d",&a,&b);
            ans=(ans+QMulti(a,b))%m;
        }
        printf("%I64d\n",ans);
    }
    return 0;
}

你可能感兴趣的:(poj 1995 Raising Modulo Numbers(快速幂模板))