luogu3197 [HNOI2008] 越狱
题目大意
已知序列$P$满足$|P|=N$,(以下所有$i,i\in[1,N]$)$\forall i, P_i\in [1,M]$。求$|\{P|\exists i, P_i =P_{i+1}\}|$。
题解
容易想到运用正难则反的思想,先求出所有情况种数,再求出不符合情况种数。
但这里“所有”是什么?是全排列吗?又是什么的全排列呢?“不符合”又是什么呢?我们说不清楚。
那么怎么想?直接整体考虑太难,我们应当一位一位考虑。$\forall i,P_i$有$M$种取值。因此所有情况种数为$M^N$。关于不符合情况种数,第一位情况有$M$个,以后每一位为了不与前面相等,情况数为$M-1$。由乘法原理,不符合情况为$M(M-1)^{N-1}$。故答案为:$M^N-M(M-1)^{N-1}$。
注意
$(a-b)\mod p\neq a\mod p-b\mod p$,$(a-b)\mod p=(a\mod p-b\mod p+p)\mod p$。
#include <cstdio>
#include <cstring>
using namespace std; #define ll long long ll Mult(ll a, ll b, ll p)
{
ll ans = 0;
while (b)
{
if (1 & b)
ans = (ans + a) % p;
a = (a + a) % p;
b >>= 1;
}
return ans;
} ll Power(ll a, ll n, ll p)
{
ll ans = 1;
while (n)
{
if (n & 1)
ans = Mult(ans, a, p);
a = Mult(a, a, p);
n >>= 1;
}
return ans;
} int main()
{
const ll P = 100003;
ll n, m;
scanf("%lld%lld", &m, &n);
printf("%lld\n", (Power(m, n, P) - Mult(m, Power(m - 1, n - 1, P), P) + P) % P);
return 0;
}
luogu3197 [HNOI2008] 越狱的更多相关文章
- bzoj1008 [HNOI2008]越狱
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5099 Solved: 2207 Description 监狱有 ...
- 【bzoj1008】[HNOI2008]越狱
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7692 Solved: 3296[Submit][Status] ...
- BZOJ 1008: [HNOI2008]越狱 快速幂
1008: [HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生 ...
- BZOJ 1008 [HNOI2008]越狱
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5166 Solved: 2242[Submit][Status] ...
- BZOJ1008: [HNOI2008]越狱-快速幂+取模
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8689 Solved: 3748 Description 监狱有 ...
- BZOJ 1008 [HNOI2008]越狱 (简单排列组合 + 快速幂)
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 10503 Solved: 4558[Submit][Status ...
- 洛谷 P3197 [HNOI2008]越狱 解题报告
P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为\(1-N\)的\(N\)个房间,每个房间关押一个犯人,有\(M\)种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可 ...
- [HNOI2008]越狱 题解(容斥原理+快速幂)
[HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多 ...
- BZOJ 1008 [HNOI2008]越狱 排列组合
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4788 Solved: 2060[Submit][Status] ...
随机推荐
- 小白写的一个ASP.NET分页控件,仅供娱乐
无聊,第一次写博客,自己动手写了一个分页控件.由于我是新手,有很多地方写得不够好,希望各位大牛多多指正.哈哈哈 /// <summary> /// 分页控件 /// </summar ...
- js动态追加的元素如何触发事件
一般通过js或者jQuery动态添加的元素标签,通过该元素标签.class.id触发事件,是无效的.如下所示: <body> <input type="text" ...
- 溢出文本省略号的js实现
function ellipsis(element) { var limitWidth = element.clientWidth; var temp = element.cloneNode(true ...
- 全文检索引擎及工具 Lucene Solr
全文检索引擎及工具 lucence lucence是一个全文检索引擎. lucence代码级别的使用步骤大致如下: 创建文档(org.apache.lucene.document.Document), ...
- SSIS SQL Server配置自动作业
目录: 一. 用SSMS配置作业,自助调度: 二.用SSMS调SSIS包: 一. 用SSMS配置作业,自助调度: 为验证数据,先创建一个表: CREATE TABLE test_table (id I ...
- 【Linux】七种运行级别
运行级别:即系统的运行模式. 级别类型: 0:关机状态. 1:单用户模式. 2:字符界面的多用户模式(不支持网络). 3:字符界面的多用户模式(运行最完整的模式). 4:未分配使用,系统保留. 5:图 ...
- 三维重建:SLAM相关的一些术语解释
SLAM是一个工程问题,再次复习一下工程中可能用到的名词解释. 还是不要看了,高翔的科普读物已经出版了,读他的<slam十四讲>就可以了. 一.度量相关: 世界坐标系:描述图像的平面坐标系 ...
- Redis 之string结构及命令详解
1.set key value ex 秒数 px 毫秒数 nx / xx 设置一个值,注:ex 与 px 同时存在时,取写在后面的一个为有效期,nx表示key不存时设置成功,xx表示 ...
- day37-1 面向对象高阶
目录 面向对象高阶 isinstance issubclass 反射(自省) 模块的使用 放在类的使用 call 面向对象高阶 isinstance 判断是否为实例化对象,以后可以用来取代type 和 ...
- php第五节课
封装 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...