1008: [HNOI2008]越狱

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 8689  Solved: 3748

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)

这个题就是快速幂和取模:
可能越狱的状态数=总的状态数-不可能越狱的状态数。
不可能的情况就是:
第一个人m种情况,第二个人m-1种情况,第三个人m-1种情况,依次类推。
所以有如下代码:
#include<bits/stdc++.h>
typedef unsigned long long ull;
using namespace std;
ull n=1e5+3;
ull pow(ull a,ull b){
ull ans=;
while(b!=){
if(b%==)
ans=ans*a%n;
a=a*a%n;
b=b/;
}
return ans;
}
int main(){
ull a,b;
while(~scanf("%llu%llu",&a,&b)){
ull h=pow(a,b);
ull k=pow(a-,b-);
ull ans=(h+n-a*k%n)%n;
printf("%llu\n",ans);
}
return ;
}

最新文章

  1. git
  2. arcengine中自定义工具和自带工具条(ICommand)点击后和其他工具使用的冲突
  3. git入门札记
  4. sql 将查询结果为多行一列合并为一行一列
  5. HDU 1811 Rank of Tetris(拓扑排序+并查集)
  6. git patch
  7. javascript-如何判断一个对象为数组
  8. hdu 5150 Sum Sum Sum 水
  9. [backbone]backbone.js
  10. UI:target-action设计模式、手势识别器
  11. IOS键盘弹出、隐藏
  12. (转)9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
  13. (转载)Cocos2dx-OpenGL ES2.0教程:使用VBO索引(4)
  14. android应用崩溃的调试方法(c++ lib so文件库崩溃)
  15. Android 判断文件的类型
  16. ADO.Net笔记整理(一)
  17. Fragment概述
  18. JDK8 HashMap--removeNode()移除节点方法
  19. C语言 &#183; 滑动解锁
  20. Jquery的ID选择器

热门文章

  1. java 利用反射完成自定义注解
  2. ZOJ 3496 Assignment | 二分+有上下界网络流
  3. POJ3294 Life Forms 【后缀数组】
  4. 【BZOJ 3144】 [Hnoi2013]切糕 真&#183;最小割
  5. codeforces2015ICL,Finals,Div.1#J Ceizenpok’s formula 扩展Lucas定理 扩展CRT
  6. 利用java.lang.reflect.Constructor动态实例化对象
  7. 【LuoguP1273有线电视网】树形依赖背包
  8. [POJ1423]Stirling公式的应用
  9. 我在一个前端项目中用js整理的一些通用方法,其中使用到的思想,主要就是约定了。
  10. [bzoj3676][Apio2014]回文串——Manacher+后缀自动机+倍增