题意:
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;
}