首页 > 其他 > 详细

[HNOI2008]越狱 快速幂 逆推

时间:2018-10-29 19:21:33      阅读:144      评论:0      收藏:0      [点我收藏+]

考虑越狱的情况有些复杂,不如考虑总情况减去不越狱的情况。

显然,总情况为 $m^n$ 种,不越狱的情况为 $m*(m-1)*(m-1)*(m-1)....$ 即为 $m*(m-1)^(n-1)$.

做差即可。

 

Code:

#include<cstdio>
#include<iostream>
typedef long long ll;
using namespace std;
const ll mod=100003;
ll pow(ll a,ll b,ll c){
    ll res=1;
    while(b>0){
        if(b&1) res=(res*a)%c;
        a=(a*a) % c;
        b>>=1;
    }
    return res % c;
}
int main(){
    ll n,m;
    cin>>m>>n;
    cout<<(pow(m,n,mod)-(pow(m-1,n-1,mod)*(m%mod))%mod+mod)%mod;
    return 0;
}

  

[HNOI2008]越狱 快速幂 逆推

原文:https://www.cnblogs.com/guangheli/p/9872412.html

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