hdu 6027
Posted 早知如此绊人心,何如当初莫相识。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 6027相关的知识,希望对你有一定的参考价值。
题意:t组,输入n,k,求f(1)+...f(n)的和,其中f(i)=i的k次方。
思路:n不大,所以暴力+快速幂
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll mod=1e9+7; 5 6 long long hh(long long a,long long b) 7 { 8 long long ans = 1; 9 while(b) 10 { 11 if(b&1) 12 { 13 ans = (ans*a)%mod; 14 b--; 15 } 16 b/=2; 17 a = a*a%mod; 18 } 19 return ans; 20 } 21 int main(){ 22 int t; 23 scanf("%d",&t); 24 while(t--){ 25 int n,k; 26 scanf("%d%d",&n,&k); 27 int sum=1; 28 for(int i=2;i<=n;i++){ 29 sum=(sum+hh(i,k)+mod)%mod; 30 } 31 printf("%d\n",(sum+mod)%mod); 32 } 33 return 0; 34 }
以上是关于hdu 6027的主要内容,如果未能解决你的问题,请参考以下文章
HDU - 6027 Easy Summation(快速幂)解题
HDU4057 Rescue the Rabbit(AC自动机+状压DP)