我是靠谱客的博主 年轻蛋挞,最近开发中收集的这篇文章主要介绍第三次周赛G题(POJ-1995),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题链接:https://vjudge.net/problem/POJ-1995

问题简述:求(A1B1+A2B2+ … +AHBH)mod M的值。

Point:用快速幂计算。

Get:这里用的是分配律:(a+b) mod c=(a mod c+ b mod c) mod c。
相关链接:https://www.cnblogs.com/yexiaozi/p/5698426.html

AC代码:

#include <iostream>
using namespace std;
long long k(long long a, long long b, long long c)
{
long long cnt=1;
while (b)
{
if (b % 2)
{
cnt = cnt * a%c;
}
b = b / 2;
a = a * a%c;
}
return cnt;
}
int main()
{
int i,z,M,H[45000][2];
cin >> z;
while (z--)
{
long long sum = 0;
cin >> M>>i;
for(int j=0;j<i;j++)
{
cin >> H[j][0] >> H[j][1];
sum += k(H[j][0], H[j][1], M);
}
cout <<sum%M<< endl;
}
}

最后

以上就是年轻蛋挞为你收集整理的第三次周赛G题(POJ-1995)的全部内容,希望文章能够帮你解决第三次周赛G题(POJ-1995)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部