HDU6027-Easy Summation

来源:互联网 发布:数据挖掘 数据分析 编辑:程序博客网 时间:2024/05/19 03:42

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
32 54 24 1
 

Sample Output
333010
 


题意:给出一个n和k,求从1^k到n^k的和

解题思路:暴力,注意取模即可


#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <cmath>#include <map>#include <cmath>#include <set>#include <stack>#include <queue>#include <vector>#include <bitset>#include <functional>using namespace std;#define LL long longconst int INF=0x3f3f3f3f;const int mod=1e9+7;int n,m;int main(){    int T;    scanf("%d",&T);    while(T--)    {        scanf("%d%d",&m,&n);        LL ans=0;        for(int i=1; i<=m; i++)        {            LL x=1;            for(int j=1; j<=n; j++)            {                x*=i;                x%=mod;            }            ans+=x;            ans%=mod;        }        printf("%lld\n",ans);    }    return 0;}

0 0
原创粉丝点击