BZOJ 1008-越狱(组合数学)
来源:互联网 发布:linux获取cpu核心数 编辑:程序博客网 时间:2024/05/16 11:57
1008: [HNOI2008]越狱
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9342 Solved: 4038
[Submit][Status][Discuss]
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的n次方
逆向思维,先求不能越狱的方案数可能比较简单呢? 故可求出当前房间犯人能够信仰的宗教一定不能和前一个相同,有m-1种
呢不能越狱的答案不就是m*(m-1)^(n-1)了;
因为是要求越狱的方案数,故拿总的方案数减掉他就好了
#include<set>#include<map>#include<math.h>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;typedef long long ll;#define maxn 105#define mod 100003ll work(ll x,ll y){ll res=1;while(y){if(y%2)res=res*x%mod;x=x*x%mod; y/=2;}return res%mod;}int main(void){ll n,m,i;scanf("%lld%lld",&m,&n); printf("%lld\n",(work(m,n)%mod-m*work(m-1,n-1)%mod+mod)%mod);return 0;}
阅读全文
0 0
- BZOJ 1008 越狱(组合数学)
- BZOJ 1008-越狱(组合数学)
- BZOJ 1008 越狱 组合数学
- BZOJ 1008 [HNOI2008] 越狱(简单组合数学)
- HYSBZ/BZOJ 1008 [HNOI2008] 越狱 - 组合数学
- bzoj 1008: [HNOI2008]越狱 简单组合数学
- [组合数学]BZOJ 1008——[HNOI2008]越狱
- hysbz1008 越狱(组合数学)
- bzoj。1008: [HNOI2008]越狱(快速幂 组合数)
- bzoj 1008 越狱 组合数+快速幂
- BZOJ 1008: [HNOI2008] 越狱 数学 快速幂
- 【BZOJ1008】【HNOI2008】越狱(组合数学)
- 【bzoj1008】越狱 组合数学
- BZOJ 1008 简单组合数学
- bzoj 4517(组合数学)
- bzoj 1856(组合数学)
- bzoj 4517(组合数学)
- 【简单组合数学】bzoj1008 越狱
- css常用选择器
- Spring Security 系列教程-Hello World
- 一个文本框查询多个所需字段值
- python基本数据类型
- 关于<textarea>解决空格的方法
- BZOJ 1008-越狱(组合数学)
- oracle优化-shared pool
- Kotlin-16.嵌套类/内部类(Nested Classes/Inner classes)
- Centos7服务器搭建django项目
- Xilinx FPGA 的PCIE 设计
- 通达OA工作流开罚款通过触发器回写到人事档案-奖惩模块
- 算法作业_41(2017.6.24第十八周)
- python安装redis
- GCTF2017-debug.exe