luogu P1630 求和(枚举暴力)

题意

题解

可以发现当a=10001时,

和1是等价的。

所以这题就水了。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 const long long mod=10000;
 8 long long ksm(long long x,long long b){
 9     long long tmp=1;
10     while(b){
11         if(b&1){
12             tmp=(tmp*x)%mod;
13         }
14         b>>=1;
15         x=(x*x)%mod;
16     }
17     return tmp;
18 }
19 int main(){
20     long long t;
21     scanf("%lld",&t);
22     while(t--){
23         long long a,b;
24         scanf("%lld%lld",&a,&b);
25         long long c=a/mod;
26         c%=mod;
27         long long d=a%mod;
28         long long ans1=0,ans2=0;
29         for(long long i=1;i<=mod;i++){
30             ans1+=ksm(i,b);
31             ans1%=mod;
32         }
33         for(long long i=1;i<=d;i++){
34             ans2+=ksm(i,b);
35             ans2%=mod;
36         }
37         printf("%lld\n",(ans1*c+ans2)%mod);
38     }
39     return 0;
40 } 

 

posted @ 2018-08-31 16:27  Xu-daxia  阅读(313)  评论(0编辑  收藏  举报