您的位置:首页 > 其它

BZOJ 1008 [HNOI2008]越狱

2017-10-02 10:08 363 查看
题目描述 传送门

数学题,不过我数学太辣鸡了……

思路是总的减去不行的,总的有MN种,不行的情况,第一个有罪犯M种宗教可信仰,之后第二个~第N个都有M−1种选择,所以有M∗(M−1)(N−1)。

代码

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int p=1e5+3;
long long quickpow(long long n,long long k){
long long ans=1;
for(n%=p;k;k>>=1,n=n*n%p)
if(k&1) ans=ans*n%p;
return ans;
}
int main(){
long long m,n,tot,no;
cin>>m>>n;
tot=quickpow(m,n);
no=(m%p)*(quickpow(m-1,n-1)%p)%p;
cout<<(tot+p-no)%p<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: