BZOJ 1008: [HNOI2008]越狱 计数原理
来源:互联网 发布:黑帽seo基础 编辑:程序博客网 时间:2024/06/14 15:06
1008: [HNOI2008]越狱
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 10200 Solved: 4417
[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)
Source
题解:
很基础的排列组合。
可以发现直接算的话不好算,但是我们可以算到总共的情况数和相邻两个都不相邻的情况数,直接想减就好了。
之前想成了任两个都不相同的情况数……但其实只要它和左边一个不相同就可以了。
#include<cstdio>#include<iostream>#include<algorithm>#define ll long longusing namespace std;const int mod = 100003;ll m,n;ll mpow(ll a,ll b){ ll rt=1; for(rt;b;b>>=1,a=1LL*a*a%mod) if(b&1) rt=1LL*rt*a%mod; return rt%mod;}int main(){ cin>>m>>n; ll ans=(mpow(m,n)+mod-(m*mpow(m-1,n-1)%mod))%mod; cout<<ans<<endl; return 0;}
阅读全文
0 0
- BZOJ 1008: [HNOI2008]越狱 计数原理
- bzoj 1008: [HNOI2008]越狱
- [BZOJ 1008][HNOI2008]越狱
- [BZOJ 1008] [HNOI2008]越狱
- bzoj 1008: [HNOI2008]越狱
- bzoj 1008 [HNOI2008]越狱
- BZOJ 1008: [HNOI2008]越狱
- BZOJ 1008 [HNOI2008]越狱
- BZOJ 1008 [HNOI2008] 越狱
- BZOJ 1008 [HNOI2008] 越狱
- 【BZOJ 1008】[HNOI2008]越狱
- 【BZOJ】1008: [HNOI2008]越狱
- BZOJ 1008 [HNOI2008] 越狱
- BZOJ 1008 [HNOI2008]越狱
- BZOJ 1008: [HNOI2008]越狱
- BZOJ 1008: [HNOI2008]越狱
- 【bzoj 1008】越狱 HNOI2008
- BZOJ 1008 [HNOI2008]越狱
- BZOJ 2002 浅谈分块如何水过LCT
- 虚拟分桶
- 字符串找id的技巧
- ssm实战视频(新)
- java基础(一)IO流操作
- BZOJ 1008: [HNOI2008]越狱 计数原理
- DP专题考试总结(4)
- maven快速入门 下搭建javaWeb工程
- DES算法概述
- redis高可用分布式集群
- 搬瓦工安装ngrok的服务器端,兼容ngrok-libev客户端
- 嵌入式调试器GDB调试过程
- hatuoj 1300 HEX----组合数+逆元+思维 山东省第八届省赛D题
- 第四章 变量、作用域和内存问题