首页 > 其他 > 详细

bzoj1008 [HNOI2008]越狱——快速幂

时间:2018-07-04 22:16:03      阅读:240      评论:0      收藏:0      [点我收藏+]

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1008

(这样一道水题还因为忘记写 %lld WA了那么多遍)

发生越狱的状态数,就是全部状态减去不越狱的状态,那么就好算了;

也就是 m^n - m * (m-1)^(n-1)

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int const mod=100003;
ll n,m;
ll pw(ll a,ll b)
{
    ll ret=1ll;
    for(;b;b>>=1ll,a=(a*a)%mod)
        if(b&1)ret=(ret*a)%mod;
    return ret;
}
int main()
{
    scanf("%lld%lld",&m,&n); m=m%mod;
    printf("%lld",((pw(m,n)-m*pw(m-1,n-1))%mod+mod)%mod);
    return 0;
}

 

bzoj1008 [HNOI2008]越狱——快速幂

原文:https://www.cnblogs.com/Zinn/p/9265430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!