快速幂 --- CSU 1556: Jerry's trouble

本文介绍了一道名为Jerry's Trouble的问题,通过快速幂的方法进行解答。该问题可以通过快速幂算法在O(n)的时间复杂度内求解。文章提供了完整的C++代码实现,并通过在线评测系统验证了正确性。

 Jerry's trouble

Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1556


 

Mean: 

略。

analyse:

水题,直接快速幂。

Time complexity: O(n)

 

Source code: 

 

//  Memory   Time 
//  1347K     0MS 
//   by : crazyacking 
//   2015-03-29-19.18 
#include<map> 
#include<queue> 
#include<stack> 
#include<cmath> 
#include<cstdio> 
#include<vector> 
#include<string> 
#include<cstdlib> 
#include<cstring> 
#include<climits> 
#include<iostream> 
#include<algorithm> 
#define MAXN 1000010 
#define LL long long 
using namespace std; 
const LL MOD=1e9+7; 
  
LL quick_pow(LL a,LL b,LL m) 
{ 
        LL ans=1; 
        while(b) 
        { 
                if(b&1) 
                { 
                        ans*=a; 
                        ans%=m; 
                } 
                a*=a; 
                a%=m; 
                b/=2; 
        } 
        return ans%m; 
} 
  
int main() 
{ 
        ios_base::sync_with_stdio(false); 
        cin.tie(0); 
//      freopen("C:\\Users\\Devin\\Desktop\\cin.cpp","r",stdin); 
//      freopen("C:\\Users\\Devin\\Desktop\\cout.cpp","w",stdout); 
        LL n,m; 
        while(cin>>n>>m) 
        { 
                LL sum=0; 
                for(int i=1;i<=n;++i) 
                { 
                        sum+=quick_pow(i,m,MOD); 
                        sum%=MOD; 
                } 
                cout<<sum%MOD<<endl; 
        } 
        return 0; 
} 
/* 
  
*/
  
/************************************************************** 
    Problem: 1556 
    User: crazyacking 
    Language: C++ 
    Result: Accepted 
    Time:2704 ms 
    Memory:1476 kb 
****************************************************************/
View Code

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值