【快速幂模板】 nyoj102 次方求摸 420 p次方求和(快速幂+同余定理)
2016-11-06 10:32
489 查看
一般循环求解时间复杂度O(N)
快速幂时间复杂度O(log2(N))
求a^b
原理 :将b转化为二进制
该二进制数第i位的权为
如a^11
11的二进制是1011
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
a^11=
code:
题目nyoj 102
题目信息
难度:3
描述
求a的b次方对c取余的值
输入第一行输入一个整数n表示测试数据的组数(n<100)
每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)
输出输出a的b次方对c取余之后的结果样例输入
样例输出
code:
题目420
题目信息
难度:3
描述 一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。
输入第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p,
输入保证0<n<=1000,0<=p<=1000。
输出输出1^p+2^p+3^p+……+n^p对10003取余的结果,每个结果单独占一行。样例输入
样例输出
快速幂+同余定理
code:
快速幂时间复杂度O(log2(N))
求a^b
原理 :将b转化为二进制
该二进制数第i位的权为
如a^11
11的二进制是1011
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
a^11=
code:
int pow(int a,int b) { int r=1; while(b) { if(b&1) { r*=a; } a*=a; b>>=1; } return r; }
题目nyoj 102
题目信息
次方求模
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述
求a的b次方对c取余的值
输入第一行输入一个整数n表示测试数据的组数(n<100)
每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)
输出输出a的b次方对c取余之后的结果样例输入
3 2 3 5 3 100 10 11 12345 12345
样例输出
3 1 10481
code:
#include<stdio.h> long long pow(int a,int b,int c) { long long m=a%c; long long r=1; while(b) { if(b&1) r=(r*m)%c; m=(m*m)%c; b>>=1; } return r; } int main() { int T,a,b,c; scanf("%d",&T); while(T--) { scanf("%d%d%d",&a,&b,&c); long long r=pow(a,b,c); printf("%lld\n",r); } }
题目420
题目信息
p次方求和
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述 一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。
输入第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p,
输入保证0<n<=1000,0<=p<=1000。
输出输出1^p+2^p+3^p+……+n^p对10003取余的结果,每个结果单独占一行。样例输入
210 110 2
样例输出
55385
快速幂+同余定理
code:
#include<stdio.h> #define c 10003 int pow(int a,int b) { int r=1; while(b) { if(b&1) { r=(r*a)%c; } a=(a*a)%c; b>>=1; } return r; } int main() { int T; scanf("%d",&T); while(T--) { int n,p,ans=0; scanf("%d%d",&n,&p); for(int i=1;i<=n;i++) { ans+=pow(i,p); ans%=c; } printf("%d\n",ans); } }
相关文章推荐
- NYOJ 420 p次方求和 (快速幂+同余定理)
- nyoj 420 p次方求和 (快速幂)
- nyoj 420 p次方求和 【快速幂】
- NYOJ420 p次方求和 快速幂取模
- NYOJ420 p次方求和 快速幂取模
- NYOJ 题目420 p次方求和(快速幂)
- nyoj 102 次方求摸 快速幂
- nyoj 102 次方求摸 快速幂
- nyoj420 P次方求和(快速幂)
- NYOJ 102 次方求模(快速求幂)
- nyoj-420-p次方求和
- NYOJ-420:p次方求和
- nyoj--102--次方求模(快速幂)
- NYOJ 420 p次方求和 大数的幂
- nyoj 102 次方求模 快速求幂
- nyoj--102--次方求模(快速幂)
- NYOJ 420 p次方求和
- nyoj 102 次方求模【快速幂】
- NYOJ 420 p次方求和
- nyoj-420-p次方求和