洛谷 P3197 [HNOI2008]越狱(快速幂)

题解:洛谷 P3197 [HNOI2008] 越狱 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。种宗教,每个犯人会信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。输入只有一行两个整数,分别代表宗教数。个房间,每个房间关押一个犯人,有。输出一行一个整数代表答案。本文分享的必刷题目是从。#普及# #快速幂# 阅读详情

传送门


题目描述

监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。

输入输出格式

输入格式:
输入两个整数M,N。1<=M<=108,1<=N<=1012

输出格式:
可能越狱的状态数,模100003取余

输入输出样例

输入样例:
2 3

输出样例:
6

说明

6种状态为(000)(001)(011)(100)(110)(111)


这是一道长得很DP的快速幂。

第一个犯人能信m种宗教,为了不与第一个犯人的宗教重复,第二个犯人只能信m-1种宗教,为了不与第二个犯人的宗教重复,第三个犯人也只能信m-1种宗教,如此类推……

因此我们用所有方案数 mn 减去合法的方案数 (m-1)n-1 即可得到不合法的方案数,也就是答案。

于是我们很开心地开始敲代码,敲吧,TLE在等着你呢(哈哈)。

再看一看题目,好像有什么不对的地方……

1<=M<=108,1<=N<=1012

所以这里需要快速幂
在求 an 之前,我们可以先求出 an÷2,因为 an = an÷2 × an÷2
这样一直分割下去,我们就可以得到一个O(log(n))的算法,也就是上面说的快速幂。

代码就是这样:

long long ans=1;
while(y>=1)
{
    if(y&1) ans=ans*x;
    x=x*x;
    y>>=1;
}

可是我们还要加mod
于是代码就变成了这样

long long ans=1;
while(y>=1)
{
    if(y&1) ans=ans*x;
    x=x*x;
    y>>=1;
}

没错,快速幂就是这么简单(啦啦啦啦)


Code:

#include<cstdio>
#include<cstdlib>
#define MOD 100003
#define LL long long

LL n,m;

inline LL q(LL x,LL y)
{
    LL ans=1;
    x%=MOD;
    while(y>=1)
    {
        if(y&1) ans=ans*x%MOD;
        x=x*x%MOD;
        y>>=1;
    }
    return ans;
}

int main()
{
    scanf("%lld %lld",&m,&n);
    printf("%lld",((q(m,n)-m*q(m-1,n-1)%MOD)%MOD+MOD)%MOD);
}
影像组学分析流程中,图像分割前要做的事(图像预处理) 在InputVolume中无法找到自己想要重采样的序列,这时可以检查一下序列的Volume type是不是MRMLMulti。这时,Volume type将由MRMLMulti改为Scaler,随后即可在3D slicer中完成Resample Scaler Volume。2.1、重采样:通过3Dslicer中的Resample Scaler Volume实现。具体设置参数:spacing(1,1,1),Interpolation选择Bspline。2、图像预处理:重采样和标准化。 阅读详情

相关推荐

AI嵌入式系统测试:从确定性验证到概率性评估的体系构建

软件测试是保障系统质量的关键环节,其核心在于验证功能是否符合预期。传统嵌入式测试聚焦于确定性逻辑,通过代码覆盖、边界值分析等方法确保时序、内存等指标的精确性。随着人工智能技术的普及,深度学习模型以其概率性输出和复杂非线性映射的特性,为嵌入式系统带来了新的能力,也彻底改变了测试的范式。AI模型的‘黑盒’特性使得测试目标从‘绝对正确’转向‘置信度满足’,并催生了准确率、F1分数等新指标。在工程实践中,这种融合要求测试体系必须扩展维度,将数据质量、模型量化损失、资源约束下的精度与性能权衡纳入核心考量。尤其在嵌入式

weixin_26766559的博客 382

蓝桥杯真题题解四

简单数论,其中包含辗转相除法和辗转相减法以及暴力枚举求约数的个数。

m0_62513791的博客 544

C#:WPF格式转Winform格式

WPF格式转Winform格式

Hello C++ 1295

【计蒜客 - T2312】越狱(容斥原理+快速幂 详解)

计蒜客 - T2312  监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入格式   输入两个整数M,N.1<=M<=10^8,1<=N<=10^12 输出格式   可能越狱的状态数,模100003取余 数据范围和提示   6种状态为(000)(001)(011)(100)(110)(111) Sample Input 2 3 Sam.

m0_58245389的博客 247

保姆级教程:用SSH手动重建黑群晖RAID1阵列,修复‘存储空间损毁’

本文提供了一份详细的SSH手动重建黑群晖RAID1阵列的教程,帮助用户修复‘存储空间损毁’问题。通过深入解析mdadm软RAID的底层逻辑,从诊断到重建的全过程,确保用户能够掌握黑群晖存储池的修复技术。适用于技术爱好者和系统管理员。

weixin_30319153的博客 292

Cocos Creator Android打包:NDK版本选择与配置全攻略

在Android原生开发中,NDK(Native Development Kit)是编译C/C++代码的核心工具链,它决定了代码如何被编译为不同CPU架构(如ARMv7、ARM64)的动态库。其工作原理在于提供了一套完整的交叉编译环境,将高级语言代码转化为设备可执行的二进制指令。这一技术对于游戏引擎和性能敏感型应用至关重要,因为它能直接调用硬件资源,提升运行效率。在实际工程中,NDK版本必须与Android Gradle插件(AGP)版本、项目依赖的C++标准库精密匹配,否则会导致编译失败或运行时崩溃。特别

weixin_33725270的博客 490

越狱:【离散数学 + 容斥原理】

对于有 n 个房间(n个犯人),m个宗教信仰。和高中数学的乘法原理类似!监狱有连续编号为 1 到 n 的 n 个房间,每个房间关押一个犯人。利用容斥原理进行全集 - 不相同集合 = 相邻相同集合!比如当前,一个房间可以有m个选择,那么n个人,就有m。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。有 m 种宗教,每个犯人可能信仰其中一种。可能越狱的状态数,对 100003 取余。种选择了,即包括了所有的选法。共一行,包含两个整数 m 和 n。求有多少种状态可能发生越狱。所以一共有 m*(m-1)

m0_63613132的博客 500

城市NOA加速落地,BEV+Transformer引领自动驾驶感知新范式

数据闭环能力的建立,不仅依赖于数据规模,还依赖于数据的筛选、回传、标注、训练、验证与再部署,数据之于自动驾驶的价值再被印证的同时,也将推动自动驾驶迈向更为高阶的智能化时代。6月份,理想汽车向早鸟用户推送了首个不依赖高精地图的城市NOA。而特斯拉推出的基于BEV+Transformer的自动驾驶感知路线,可将2D图像转化为BEV鸟瞰图视角下的3D图像,并基于更庞大、更复杂、参数更多的感知算法模块,利用Transformer的注意力机制,将各个传感器统一到同一个连续的四维(三维空间+一维时间)时空中。

manfukeji的博客 1396

越狱(快速幂+组合数学)

题意:监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果 相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。 分析:用排除法。 不可能发生越狱的状态为m*(m-1)^(n-1) 那么总方案就是m^n-m*(m-1)^(n-1) #include #include #include using

ToBeYours的博客 524

Android Camera Sensor HDR详解

本文详细介绍了Android相机传感器(Sensor)中实现高动态范围(HDR)采集的各种技术方式。主要内容包括: Sensor HDR技术分类 帧内HDR(Single-Frame HDR):在同一帧同一像素内完成多增益采集,无运动伪影和帧率损失,包括DAG(双模拟增益)、DCG(双转换增益)等技术 帧间HDR(Multi-Frame HDR):通过多帧曝光实现,如DOL(数字重叠)、Staggered HDR等 混合HDR:结合多种技术的复合方案 详细技术原理 重点解析了DAG和DCG两种主流帧内HDR

DU_YULIN的博客 359

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2641

P3197 [HNOI2008]越狱

P3197 [HNOI2008]越狱

weixin_52490191的博客 290

〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)

测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 "操作" 这一部分又是建立在 "selenium" 元素定位的基础之上的。所以对元素对象的定位就显得越发的重要,接下来我们就学习一下常用的元素定位方法有哪些。......

易编橙 · 终身成长社群,相遇已是上上签! 4万+

洛谷 P3197: [HNOI2008] 越狱 ← 快速幂

本题本质是计算在 n 个位置使用 m 种颜色时,至少有一对儿相邻位置颜色相同的涂色方案数。其核心思想是利用总方案数减去所有相邻位置颜色都不相同的方案数。

hnjzsyjyj的专栏 75

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【题解】洛谷P3197(bzoj1008/LibreOJ10196)[HNOI2008]越狱 快速幂

题目链接 题目描述 监狱有连续编号为 1…N1…N1…N 的 NNN 个房间,每个房间关押一个犯人,有 MMM 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。 输入输出格式 输入格式: 输入两个整数 M,NM,NM,N 输出格式: 可能越狱的状态数,模 100003100003100003 取余 输入输出样例 输入样例#1: 2 3 输...

翻过这座山,他们就会听到你的故事 345

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

信息学奥赛一本通 1618:越狱 | 洛谷 P3197 [HNOI2008] 越狱

本文通过补集转化思想求解越狱问题,计算n个数值范围为[1,m]的整数序列中存在相邻相等元素的方案数。首先求出总序列数m^n,再减去相邻元素均不相等的序列数m*(m-1)^(n-1),结果对100003取模。提供了两种解法:直接快速幂计算和使用费马小定理降幂优化。最终结果为(m^n - m*(m-1)^(n-1)) mod 100003,通过数学取模处理可能出现的负数情况。

君义NOIP的博客 852

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

洛谷 P3197 [HNOI2008] 越狱

洛谷 P3197 [HNOI2008] 越狱。

weixin_55082248的博客 154

BZOJ1008 [HNOI2008]越狱(洛谷P3197)

组合数学

forezxl的博客 723

P3197 [HNOI2008]越狱[组合数学]

题目来源:洛谷 题目描述 监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。 输入输出格式 输入格式: 输入两个整数M,N 输出格式: 可能越狱的状态数,模100003取余 输入输出样例 输入样例#1: 2 3 ...

weixin_30885111的博客 199

[HNOI2008]越狱

题目:BZOJ1008、洛谷P3197。 题目大意:有n个人,m种宗教信仰,被关在1~n编号的一排监狱里。如果相邻两个人宗教信仰相同,则会发生越狱。问有多少情况会发生越狱?答案mod 100003。 解题思路:每个人有m种可能的宗教信仰,有n个人,则有$m^n$种情况。 不能越狱则需要两个相邻的宗教信仰不同,则除了第一个有m种可能外,其他都只有m-1种,因为要和前一个不同。 则一...

194

洛谷 P3197 [HNOI2008]越狱

越狱 (咕咕咕) Code: #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace std; //Mystery_Sky // #define M 1000100 #define ll long long #def...

170

小白都能看懂的P3197 [HNOI2008]越狱题解

这算一道数学题,找出所有越狱的情况不好找,但我们可以找出所有不越狱的情况,第一个房间罪犯的宗教可能有M种,那么第二个罪犯如果不能满足越狱条件则必须和第一个宗教不同,就只有(M-1)种,那么第3~N个罪犯也一样,都有(M-1)种情况...

qq_62378362的博客 986

快速幂 手算到机算 入门

快速幂 入门 洛谷 P1226 【模板】快速幂||取余运算 洛谷 P1965 转圈游戏洛谷 洛谷 P3197 [HNOI2008]越狱

mrcrack的博客 546

洛谷 P3197 [HNOI2008]越狱 解题报告

P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为\(1…N\)的\(N\)个房间,每个房间关押一个犯人,有\(M\)种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。 输入输出格式 输入格式: 输入两个整数 \(M,N\) 输出格式: 可能越狱的状态数,模100003取余 说明 \(1≤M≤10^8\) \(1≤N≤10^{...

weixin_30306905的博客 188

洛谷P3197 [HNOI2008]越狱

P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入输出格式 输入格式: 输入两个整数M,N.1<=M<=10^8,1<=N<=10^12 输出...

weixin_30322405的博客 177

快速幂算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

tangping3的博客 270
上一篇: 洛谷 P1514 引水入城(记忆化搜索+贪心)
下一篇: 洛谷 P1378 油滴扩展(深搜)
Dawn_LLLLLLL
博客等级 码龄9年 12粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值