POJ 1995 Raising Modulo Numbers(快速幂)

嗯...

题目链接:http://poj.org/problem?id=1995

快速幂模板...

AC代码:

 1 #include<cstdio>
 2 #include<iostream>
 3
 4 using namespace std;
 5
 6 int main(){
 7     long long N, M, n, a, b, c, sum = 0;
 8     scanf("%lld", &N);
 9     while(N--){
10         scanf("%lld%lld", &M, &n);
11         sum = 0;
12         for(int i = 1; i <= n; i++){
13             c = 1;
14             scanf("%lld%lld", &a, &b);
15             while(b){
16                 if(b & 1) c = c * a % M;
17                 a = a * a % M;
18                 b /= 2;
19             }
20             sum += c % M;
21         }
22         printf("%lld\n", sum % M);
23     }
24     return 0;
25 }

AC代码

原文地址:https://www.cnblogs.com/New-ljx/p/11515343.html

时间: 2024-10-06 15:48:27

POJ 1995 Raising Modulo Numbers(快速幂)的相关文章

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

Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4938   Accepted: 2864 Description People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, oth

POJ 1995 Raising Modulo Numbers (快速幂)

题意: 思路: 对于每个幂次方,将幂指数的二进制形式表示,从右到左移位,每次底数自乘,循环内每步取模. #include <cstdio> typedef long long LL; LL Ksm(LL a, LL b, LL p) { LL ans = 1; while(b) { if(b & 1) { ans = (ans * a) % p; } a = (a * a) % p; b >>= 1; } return ans; } int main() { LL p, a

POJ 1995 Raising Modulo Numbers (数论-整数快速幂)

Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4379   Accepted: 2516 Description People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, oth

poj Raising Modulo Numbers 快速幂模板

Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8606   Accepted: 5253 Description People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, oth

POJ1995 Raising Modulo Numbers(快速幂)

POJ1995 Raising Modulo Numbers 计算(A1B1+A2B2+ ... +AHBH)mod M. 快速幂,套模板 /* * Created: 2016年03月30日 23时01分45秒 星期三 * Author: Akrusher * */ #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #

poj 1995 Raising Modulo Numbers

Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4987   Accepted: 2887 Description People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, oth

poj 1995 Raising Modulo Numbers 题解

Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6347   Accepted: 3740 Description People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, oth

POJ 1995 Raising Modulo Numbers 【快速幂取模】

题目链接:http://poj.org/problem?id=1995 解题思路:用整数快速幂算法算出每一个 Ai^Bi,然后依次相加取模即可. #include<stdio.h> long long quick_mod(long long a,long long b,long long c) { long long ans=1; while(b) { if(b&1) { ans=ans*a%c; } b>>=1; a=a*a%c; } return ans; } int

poj 1995 Raising Modulo Numbers 二分快速幂

题意:给定n对Ai,Bi,求所有Ai的Bi次方之和对M取模的结果: 思路:二分法求快速幂: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; __int64 sum,x,y,t; __int64 mod(__int64 a,__int64 b,__int64 c) { if(b==0) return 1%c; if(b==1) return a%c; t=mod(a,b