1290 越狱(逆向思维-快速幂)
1. 问题描述:
监狱有连续编号为 1 到 n 的 n 个房间,每个房间关押一个犯人。有 m 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。
输入格式
共一行,包含两个整数 m 和 n。
输出格式
可能越狱的状态数,对 100003 取余。
数据范围
1 ≤ m ≤ 10 ^ 8,
1 ≤ n ≤ 10 ^ 12
输入样例:
2 3
输出样例:
6
样例解释
所有可能的 6 种状态为:(000)(001)(011)(100)(110)(111)。
来源:https://www.acwing.com/problem/content/description/1292/
2. 思路分析:
分析题目可以知道需要求解的是至少包含两个相同数字的情况但是直接求不好求解,其实我们可以反过来求解,先求解出所有的情况a,然后求解任何两个相邻的数字都不相邻的情况b,a - b就是答案,这使用到了正难则反的思想。m ^ n - m * (m - 1) ^ (n - 1)
3. 代码如下:
class Solution:def quickPower(self, x: int, n: int, mod: int):res = 1while n > 0:if n & 1:res = res * x % modx = x * x % modn >>= 1return resdef process(self):m, n = map(int, input().split())mod = 100003print((self.quickPower(m, n, mod) - m * self.quickPower(m - 1, n - 1, mod) + mod) % mod)if __name__ == '__main__':Solution().process()
1290 越狱(逆向思维-快速幂)相关推荐
- BZOJ-1008 越狱 数论快速幂
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 6192 Solved: 2636 [Submit][Status] ...
- 【codevs1851】越狱,快速幂数学
越狱 2008年湖南省队选拔赛 时间限制: 10 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description 监狱有连续编号为1-N的N个房间,每个房 ...
- P3197 [HNOI2008]越狱(快速幂)
题目描述 监狱有连续编号为 1-N1-N1-N 的 NNN 个房间,每个房间关押一个犯人,有 MMM 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂
信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...
- BZOJ 1008--[HNOI2008]越狱(容斥快速幂)
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 12593 Solved: 5439 [Submit][Stat ...
- 【数学专题】 筛质数、分解质因数和快速幂
筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...
- acm新手小白必看系列之(7)——快速幂取模精讲及例题
acm新手小白必看系列之(7)--快速幂取模精讲及例题 性质1:(a+b)%m=(a%m+b%m)%m 性质2:(ab)%m=(a%mb%m)%m 给你一个数a,让你求其b次连乘后的结果 当b很小时, ...
- 矩阵快速幂+构造方法
与快速幂一样,可以将递推式通过二进制的方式来进行优化,这个学了快速幂就是十分容易理解 大概的板子如下: struct mat///自己定义大小的矩阵 {ll m[11][11]; }; mat mul ...
- 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...
最新文章
- 长此以往的发展,以BCH为代表的数字货币终将会为自己正名
- c语言编写二次方程求根程序,一元二次方程求解程序完整代码
- libevent学习笔记
- Mac下使用Homebrew安装Sphinx和MySQL
- Spark SQL(五)之数据加载与存储
- 正则表达式的捕获性分组/反向引用
- 前端学习(1658):前端系列实战课程之图片延迟加载思路
- Dubbo常见面试题与答案
- 02241107班编程题 切片逆序大小写等
- Hive 创建表的三种方式
- 如何通过方法(函数)来实现两个基本数据类型的数值交换
- 51单片机步进电机c语言程序,51单片机的步进电机c语言驱动程序
- Laravel文档梳理10、请求生命的周期
- 《激荡三十年》七、国企难破局—“裁缝神话”步鑫生
- 如何有效的获得高质量的大规模标注数据?
- CSDN日报180605——《认知升级是令我们变得优秀的重要基石》
- 你到底是想做产品,还是想做产品经理?
- [ Cesium ] 根据卫星位置,建立实时动态连线
- oracle第五章多表连接习题答案(理解+剖析)
- 布林带止盈止损策略改进
热门文章
- 从零开始学python第12天,每天至少半小时
- BXA联手ONEROOT推出数字金融服务
- Day 8.Developing Simplified Chinese Psychological Linguistic Analysis Dictionary for Microblog
- python最简单的语言_Python语言的简单实用小工具
- 清华学计算机的住在哪个公寓,清华大学周边住宿攻略_清华大学附近住哪里好?...
- 三星电视显示服务器无响应,三星液晶电视死机怎么办 三星液晶电视死机解决方法...
- 喜讯 | 经纬恒润荣获一汽红旗 “攻坚克难·旗志奖”
- Revit 2014 发布, Revit 2014 API新功能
- 交换机组播风暴_【交换机】交换机如何配置storm-contro风暴控制
- android自定义抽奖,Android 自定义View 抽奖大转盘(2)