[HNOI2008] 越狱 快速幂
2024-09-05 03:06:13
[HNOI2008] 越狱 快速幂
水。考虑不发生越狱的情况:即宗教相同的都不相邻,一号任意放\(m\)种宗教的人,此后\(n-1\)个房间都放与上一个宗教不同的人,有\(m-1\)种,所以共有\(m*(m-1)^{n-1}\)种。答案即\(m^n-m*(m-1)^{n-1}\)。快速幂即可。
注意,这里需要考虑模后相减为负的情况,此时将负值再加上模数变为正数即可。
#include <cstdio>
#define MOD 100003
#define ll long long
using namespace std;
ll m,n;
ll qpow(ll x, ll k){
ll ans=1;
while(k){
if(k&1) ans=ans*x%MOD;
k>>=1;
x=x*x%MOD;
}
return ans;
}
int main(){
scanf("%lld %lld", &m, &n);
m%=MOD;
printf("%lld\n", (qpow(m, n)-qpow(m-1, n-1)*m%MOD+MOD)%MOD);
return 0;
}
最新文章
- Nodejs之MEAN栈开发(六)---- 用Angular创建单页应用(上)
- React学习笔记。
- 使用VS2013分析DMP文件
- Java方法调用中的别名处理
- vs出现“已经在解决方案中打开了具有该名称的项目”问题的解决方案
- python的 map,filter, reduce, enumerate
- U-boot的环境变量: bootcmd 和bootargs
- pb中创建连接webservice对象实例方法
- 如何正确的使用uwsgi
- Vue组件实例间的直接访问
- JPA之helloWorld
- Webpack 2 视频教程 008 - WDS 端口号等配置相关
- 【Zabbix】zabbix设置邮件报警
- The 2018 ACM-ICPC Asia Qingdao Regional Contest(部分题解)
- 微信小程序支付(PHP后端)
- js获取元素提示信息
- C#以太坊基础入门
- Spring 事件
- ACM-ICPC 2018 徐州赛区网络预赛 G Trace(逆向,两颗线段树写法)
- extjs 事件监听 三种方式