本文主要是介绍HDU - 6027 Easy Summation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:
f(i)=ik f ( i ) = i k
sum=f(1)+f(2)+f(3)⋅⋅⋅⋅⋅⋅f(n) s u m = f ( 1 ) + f ( 2 ) + f ( 3 ) · · · · · · f ( n )
给你两个数n,k,求sum。对mod取余。
求幂嘛,,,上来就是快速幂,这个题数据规模比较小,暴力也可以过的
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const long long mod = 1e9 + 7;
ll kpow(ll a,ll b){a = a%mod;ll ans = 1;while(b){if(b&1) ans = a * ans%mod;a = a*a%mod;b>>=1;}return ans;
}
int main(){int T;cin>>T;while(T--){int n,k;cin>>n>>k;ll sum = 0;for(int i = 1;i<=n;i++){sum = (sum+kpow(i,k))%mod;}cout<<sum<<endl;}return 0;
}
这篇关于HDU - 6027 Easy Summation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!