【HNOI 2008】 越狱
【题目链接】
【算法】
显然,越狱情况数 = 总情况数 - 不能越狱的情况数
很容易发现,总情况数 = M^N
不能越狱的情况数怎么求呢? 我们发现,不能越狱的情况,其实就是第一个人任选一种宗教,后面n-1个人,每个人都选
一种与前面一个人不同的宗教,所以第一个人有M种选法,后N-1个人,每个人都有M-1种选法,因此,不能越狱的情况
数 = M * (M - 1)^(N - 1)
所以,越狱情况数 = M ^ N - M * (M - 1)^(N - 1)
注意算乘方时,要用到快速幂
【代码】
#include<bits/stdc++.h>
using namespace std;
const long long MOD = ; long long n,m,ans1,ans2; template <typename T> inline void read(T &x) {
long long f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}
template <typename T> inline void writeln(T x) {
write(x);
puts("");
}
long long power(long long a,long long n) {
long long res;
if (n == ) return ;
if (n == ) return a % MOD;
res = power(a,n>>);
res = (res * res) % MOD;
if (n & ) res = res * a % MOD;
return res;
} int main() { read(m); read(n);
ans1 = power(m,n);
ans2 = ((m % MOD) * power(m-,n-)) % MOD;
writeln((ans1-ans2+MOD)%MOD); return ; }
【HNOI 2008】 越狱的更多相关文章
- [HNOI 2008]越狱
Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果 相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 I ...
- [补档][HNOI 2008]GT考试
[HNOI 2008]GT考试 题目 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字. 他的不吉利数学A1A2... ...
- 【BZOJ】【1008】【HNOI】越狱
快速幂 大水题= = 正着找越狱情况不好找,那就反过来找不越狱的情况呗…… 总方案是$m^n$种,不越狱的有$m*(m-1)^{n-1}$种= = 负数搞搞就好了…… 莫名奇妙地T了好几发…… /** ...
- 【BZOJ 1005】【HNOI 2008】明明的烦恼
http://www.lydsy.com/JudgeOnline/problem.php?id=1005 答案是\[\frac{(n-2)!}{(n-2-sum)!×\prod_{i=1}^{cnt} ...
- 【BZOJ 1043】【HNOI 2008】下落的圆盘 判断圆相交+线段覆盖
计算几何真的好暴力啊. #include<cmath> #include<cstdio> #include<cstring> #include<algorit ...
- 【BZOJ 1007】【HNOI 2008】水平可见直线 解析几何
之前机房没网就做的这道题,用的解析几何判断交点横坐标 #include<cmath> #include<cstdio> #include<cstring> #inc ...
- [bzoj 1004][HNOI 2008]Cards(Burnside引理+DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 分析: 1.确定方向:肯定是组合数学问题,不是Polya就是Burnside,然后题目上 ...
- BZOJ 1010 玩具装箱toy(四边形不等式优化DP)(HNOI 2008)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- HNOI 2008:水平可见直线
Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y ...
随机推荐
- 可拔插的 IOC 容器
可拔插的 IOC 容器 于是我打算自己实现一个这样的 bean 容器. 但在实现之前又想到一个 feature: 不如把实现 bean 容器的方案交给使用者选择,可以选择使用 bean 容器,也可以就 ...
- CodeForces - 320B Ping-Pong (Easy Version)
题目最开始 完全不懂 配合案例也看不懂-_- 总之就是用传递性 问能否从a区间到b区间 dfs(x,y) 走遍与第x区间所有的 联通区间 最后检验 第y区是否被访问过 是一道搜索好题 搜索还需加强 # ...
- PatentTips - Solid State Disk (SSD) Device
BACKGROUND OF THE INVENTION A SSD apparatus is a large-capacity data storage device using a nonvolat ...
- CSS属性操作一
CSS属性操作 一.CSS text 1.文本颜色:color 颜色属性被用来设置文字的颜色.颜色是通过CSS最经常的指定: • 十六进制值 - 如: #FF0000 • 一个RGB值 - 如: RG ...
- POJ 1144 割点
题意 :求割点的数量 #include<iostream> #include<stdio.h> #include<vector> #include<strin ...
- [Bzoj3611][Heoi2014]大工程(虚树)
3611: [Heoi2014]大工程 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 2000 Solved: 837[Submit][Status ...
- Myeclipse配置jad
下载地址:http://pan.baidu.com/s/1bnpMEuF 1.下载jad158g.win.zip 下载后解压.解压缩后将jad.exe拷贝到自定义的文件夹内:我这里用的是D:/jad/ ...
- strstr-strcat实现
strstr 调用格式 #include <string.h> char *strstr(const char *haystack, const char *needle); 功能说明 该 ...
- 实例 mount新硬盘方法
0.建立挂载文件夹: mkdir /mnt/sdb1 1 .查看新硬盘: fdisk -l 2. 硬盘分区: fdisk /dev/sdb1 根据提示,依次输入 n, p, 1, 以及两次回车,然后是 ...
- swiper插件制作轮播图swiper2.x和3.x区别
swiper3.x仅仅兼容到ie10+.比較适合移动端. swiper3.x官网 http://www.swiper.com.cn/ swiper2.x能够兼容到ie7+.官网是http://swi ...