HDU 6027 Easy Summation

xiaoxiao2021-02-28  60

Easy Summation

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 54    Accepted Submission(s): 32 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

题意:给出n,k,求n以内的所有数的k次方之和。对1000000007取模。

很简单直接照着算,不会超时的。

#include<cstdio> #include<cstring> #include<algorithm> #define N 1000000007 using namespace std; int main() { int i,j,n,t,a,b; __int64 s,sum; scanf("%d",&t); while(t--) { scanf("%d%d",&a,&b); sum=0; for(i=1;i<=a;i++) { s=1; for(j=0;j<b;j++) { s*=i; if(s>N) s=s%N; } sum+=s; if(sum>N) sum=sum%N; } printf("%d\n",sum); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-85210.html

最新回复(0)