博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1008 [HNOI2008]越狱 (快速幂,组合)
阅读量:4981 次
发布时间:2019-06-12

本文共 612 字,大约阅读时间需要 2 分钟。

题目大意

\(m\)种数字组成的长度为\(n\)的序列的种数,序列中至少有一段连续的数字

分析

用可重排列的种数减去,相邻数字互不相同的序列种数

考虑相邻互不相同,第一个元素有\(m\)种可能,后面每个元素不能和它左边的那个数一样,有\(m-1\)种可能

\[m^n - m(m-1)^{n-1}\]

代码

#include
#include
#include
#define LL long long using namespace std;const LL p = 100003;LL pw(LL a,LL b){ LL t = 1; for (;b;b >>= 1) { if (b & 1) t = t * a % p; a = a % p * a % p; } return t;}int main(){ LL n,m; scanf("%lld%lld",&m,&n); printf("%lld\n",(p + pw(m,n) - m * pw(m - 1,n - 1) % p) % p); return 0;}

转载于:https://www.cnblogs.com/bobble/p/9448187.html

你可能感兴趣的文章
django 0
查看>>
knn 算法 k个相近邻居
查看>>
710
查看>>
python SMTP发邮件
查看>>
数据存储 csv
查看>>
redis 解决秒杀
查看>>
python 测试
查看>>
ms2
查看>>
nginx
查看>>
单下滑线 事务 锁
查看>>
mysql 索引
查看>>
spider
查看>>
shell
查看>>
drf 组件
查看>>
amazon 1
查看>>
MS yc
查看>>
Electron-vue中通过WebAudioApi实现录音功能,并转换为mp3格式,实时监测音频设备变化...
查看>>
Express配置ssl证书,为网站开启https
查看>>
安装新版本报错
查看>>
礼物播放功能
查看>>