POJ1995

这题很水 就是很普通的快速幂取模 二分的原理 水过。。。

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;

long long modular(long long a,long long b,long long c)
{
    int ans=1;
    while(b)
    {
        if(b&1)
            ans=ans*a%c;
        b>>=1;
        a=a*a%c;
    }
    return ans;
}
int main()
{
    int t,h,m;
    long long a,b;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&m,&h);
        long long ans=0;
        while(h--)
        {
            scanf("%lld%lld",&a,&b);
            ans=(ans+modular(a,b,m))%m;
        }
        printf("%lld\n",ans);
    }
    return 0;
}
时间: 2024-10-01 16:46:50

POJ1995的相关文章