NYOJ 420 p次方求和

来源:互联网 发布:海量数据股票目标价 编辑:程序博客网 时间:2024/05/17 23:32

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=420


超时了一次,最后用二分求幂才AC


/*import java.math.BigInteger;import java.util.Scanner;public class Main{//超时public static void main(String[] args) {Scanner input=new Scanner(System.in);int N=input.nextInt();while(N-->0){int n=input.nextInt();int p=input.nextInt();long begin=System.currentTimeMillis();BigInteger sum=BigInteger.valueOf(1);for(int i=2;i<=n;i++){sum=sum.add(BigInteger.valueOf(i).pow(p).mod(BigInteger.valueOf(1003)));}System.out.println(sum);System.out.println(System.currentTimeMillis()-begin);}}}*/

AC代码:

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner input=new Scanner(System.in);int N=input.nextInt();while(N-->0){int n=input.nextInt();int p=input.nextInt();if(p==0){System.out.println(n);continue;}long sum=0;for(int i=1;i<=n;i++){sum=(sum+pow(i,p)%10003)%10003;}System.out.println(sum);}}private static long pow(int a, int b) {//二分求幂// TODO Auto-generated method stubif(b==1)return a;long x=pow(a,b/2);long v=((x%10003)*(x%100003))%10003;if(b%2==1)v=v*a%10003;return v;}}


原创粉丝点击