2017女生赛 1005 Easy Summation【】

xiaoxiao2021-02-28  87

Easy Summation

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description You are encountered with a traditional problem concerning the sums of powers. Given two integers  n  and  k . Let  f(i)=ik , please evaluate the sum  f(1)+f(2)+...+f(n) . The problem is simple as it looks, apart from the value of  n  in this question is quite large. Can you figure the answer out? Since the answer may be too large, please output the answer modulo  109+7 .   Input The first line of the input contains an integer  T(1T20) , denoting the number of test cases. Each of the following  T  lines contains two integers  n(1n10000)  and  k(0k5) .   Output For each test case, print a single line containing an integer modulo  109+7 .   Sample Input 3 2 5 4 2 4 1   Sample Output 33 30 10 当时一激动没考虑到直接pow超出了longlong范围wa了两发 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<string> #include<queue> #include<stack> #include<vector> #include<algorithm> using namespace std; #define ll long long #define ms(a,b) memset(a,b,sizeof(a)) const int M=1e5+10; const int inf=0x3f3f3f3f; int i,j,k,n,m; const ll mod=1e9+7; int main() { int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&k); ll ans=0; for(int i=1;i<=n;i++){ ll sum=1; for(int j=1;j<=k;j++) sum*=i,sum%=mod; ans+=sum; ans%=mod; } printf("%lld\n",ans); } return 0; }  
转载请注明原文地址: https://www.6miu.com/read-73630.html

最新回复(0)