BZOJ1008 [HNOI2008]越狱 (快速幂,组合)
题目大意
求\(m\)种数字组成的长度为\(n\)的序列的种数,序列中至少有一段连续的数字
分析
用可重排列的种数减去,相邻数字互不相同的序列种数
考虑相邻互不相同,第一个元素有\(m\)种可能,后面每个元素不能和它左边的那个数一样,有\(m-1\)种可能
即$$m^n - m(m-1)^{n-1}$$
代码
#include<iostream>
#include<cmath>
#include<cstdio>
#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;
}
BZOJ1008 [HNOI2008]越狱 (快速幂,组合)的更多相关文章
- BZOJ1008: [HNOI2008]越狱-快速幂+取模
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8689 Solved: 3748 Description 监狱有 ...
- BZOJ1008 [HNOI2008]越狱 快速幂
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1008 题意概括 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可 ...
- bzoj1008 [HNOI2008]越狱——快速幂
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1008 (这样一道水题还因为忘记写 %lld WA了那么多遍) 发生越狱的状态数,就是全部状态 ...
- [HNOI2008] 越狱 快速幂
[HNOI2008] 越狱 快速幂 水.考虑不发生越狱的情况:即宗教相同的都不相邻,一号任意放\(m\)种宗教的人,此后\(n-1\)个房间都放与上一个宗教不同的人,有\(m-1\)种,所以共有\(m ...
- BZOJ 1008: [HNOI2008]越狱-快速幂/取模
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8689 Solved: 3748 Description 监狱有 ...
- BZOJ 1008: [HNOI2008]越狱 快速幂
1008: [HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生 ...
- bzoj1008/luogu3197 越狱 (快速幂)
算$m^n-m*(m-1)^{n-1}$,就是总的减去不越狱的,不越狱就每次都选一个和上一个不一样的
- [HNOI2008]越狱 快速幂 逆推
考虑越狱的情况有些复杂,不如考虑总情况减去不越狱的情况. 显然,总情况为 $m^n$ 种,不越狱的情况为 $m*(m-1)*(m-1)*(m-1)....$ 即为 $m*(m-1)^(n-1)$. 做 ...
- bzoj1008: [HNOI2008]越狱 数学公式+快速幂
bzoj1008: [HNOI2008]越狱 O(log N)---------------------------------------------------------------- ...
- BZOJ 1008 [HNOI2008]越狱 (简单排列组合 + 快速幂)
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 10503 Solved: 4558[Submit][Status ...
随机推荐
- android audiorecord初始化失败相关资料收集
We're also struggling with audio recording on some Samsung Android Devices. Unfortunately it seems t ...
- Javascript中求Date类型的差值、增加/减少秒/分钟/小时/天等
最近需要对时间进行加减操作,以往需要取出具体时间后再加减,还需考虑进位问题很是麻烦 转载请注明出处: http://www.cnblogs.com/zaiyuzhong/p/date-operator ...
- nodejs查询
const tagModel = require("../mongodb"); 1 const mongoose = require("mongoose"); ...
- Apache SSI远程命令执行漏洞复现
漏洞原理:当目标服务器开启了SSI与CGI支持,就可以上传shtml文件,并利用语法执行任意命令,例如<!- - #exec cmd="ls"- ->,cmd后面跟要执 ...
- SQL语句大全,你不会写的SQL可能都在这里
1.创建数据库 CREATE DATABASE database-name 2.删除数据库 drop database dbname3.说明:备份sql server 创建 备份数据的 device ...
- 【Java学习Day02】基本的Dos命令
基本的Dos命令学习 打开CMD的方式 Windows+S,输入cmd打开命令控制台 鼠标右键单击windows图标,再单击windows终端(管理员)即可以管理员的身份打开PowerShell/CM ...
- BAPI_GOODSMVT_CREATE - 101 mvt. Message ERROR M7427
Message SAP M7427 - Entered batch &1 does not match batch &2 in the purchase order 639934 - ...
- 深入理解 epoll 原理
从网卡如何接收数据说起 CPU 如何知道接受了数据? 进程阻塞为什么不占用 CPU 资源? 工作队列 等待队列 唤醒进程 内核接收网络数据全过程 同时监视多个 socket 的方法 select 的监 ...
- 什么是cache
什么是cacheTo minimize the quantity of control information stored, the spatial locality property is use ...
- C++内存分配Arena,指的是提前分配的一大块连续内存空间
参考: https://stackoverflow.com/questions/12825148/what-is-the-meaning-of-the-term-arena-in-relation-t ...