博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ1008】1008: [HNOI2008]越狱 简单组合数学+快速幂
阅读量:5283 次
发布时间:2019-06-14

本文共 785 字,大约阅读时间需要 2 分钟。

Description

监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱

Input

输入两个整数M,N.1<=M<=10^8,1<=N<=10^12

Output

可能越狱的状态数,模100003取余

Sample Input

2 3

Sample Output

6

HINT

 

6种状态为(000)(001)(011)(100)(110)(111)

 

Source

 

开始忘了打负数了,还我1A!
1 #include 
2 #include
3 #define ll long long 4 #define P 100003 5 using namespace std; 6 ll n,m; 7 ll q_pow(ll x,ll y) 8 { 9 ll ans=1;10 while (y)11 {12 if (y&1) ans=ans*x%P;13 x=x*x%P;14 y>>=1;15 }16 return ans;17 }18 int main()19 {20 scanf("%lld%lld",&m,&n);21 ll sum;22 sum=(q_pow(m,n)-m*q_pow(m-1,n-1)%P+P)%P;23 printf("%lld\n",sum);24 return 0;25 }
View Code

 

转载于:https://www.cnblogs.com/DMoon/p/5248456.html

你可能感兴趣的文章
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
根据xml生成相应的对象类
查看>>
Android StageFrightMediaScanner源码解析
查看>>
打包java程序生成exe
查看>>
八叉树
查看>>
Git 远程仓库
查看>>
关于静态文本框透明度的问题
查看>>
javascript的发展及个人笔记
查看>>
全选,反全选,反选,获取选中的值,根据子选择控制全选按钮
查看>>
[CF#250 Div.2 D]The Child and Zoo(并查集)
查看>>
博客园博客插入公式
查看>>
hdu 1028 Ignatius and the Princess III(母函数入门+模板)
查看>>
Ubuntu下配置安装telnet server
查看>>
Codeforces 235 E Number Challenge
查看>>
ubuntu 常见命令整理
查看>>
EJBCA安装教程+postgresql+wildfly10
查看>>
(五十四)涂鸦的实现和截图的保存
查看>>
配置EditPlus使其可以编译运行java程序
查看>>