news 2026/5/13 15:06:14

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
信息学奥赛一本通 1618:越狱 | 洛谷 P3197 [HNOI2008] 越狱

【题目链接】

ybt 1618:越狱
洛谷 P3197 [HNOI2008] 越狱

【题目考点】

1. 补集转化

当集合本身元素个数很难分析,但全集和补集都很容易求解时,可以先求出全集和补集的元素个数,二者相减就是所求集合元素的个数。
例:求从5个小球的排列中选出2个不相邻的小球的情况数。
5个小球中选出2个小球的总方案数是C 5 2 C_5^2C52,选出2个相邻小球的情况有4种,那么选出两个不相邻小球的方案数为总方案数减去5个小球中选出2个相邻小球的方案数,即C 5 2 − 4 = 6 C_5^2-4=6C524=6

2. 快速幂
3. 费马小定理

【解题思路】

该问题可以等价为:n nn个数值范围为[ 1 , m ] [1,m][1,m]的整数构成序列,求存在相邻两元素数值相等的序列的数量。
这样满足要求的序列很难求。可以考虑求其“补集”的情况数量,也就是该问题“反面”的情况。
先求出“全集”的情况数,即n nn个数值范围为[ 1 , m ] [1,m][1,m]的整数构成的序列的总数量。
第1步确定第1个元素的值,可以是[ 1 , m ] [1,m][1,m]中的整数,共m mm种情况。
第2步确定第2个元素的值,可以是[ 1 , m ] [1,m][1,m]中的整数,共m mm种情况。

n nn步确定第n nn个元素的值,可以是[ 1 , m ] [1,m][1,m]中的整数,共m mm种情况。
根据乘法原理,n nn个数值范围为[ 1 , m ] [1,m][1,m]的整数构成的序列的总数量为m n m^nmn

接下来求“补集”的情况数。考虑不满足“存在相邻两元素数值相等”的序列,即相邻元素数值都不相等的序列。
第1步确定第1个元素的值,可以是[ 1 , m ] [1,m][1,m]中的整数,共m mm种情况,假设选定的数值为a 1 a_1a1
第2步确定第2个元素的值,可以是[ 1 , m ] [1,m][1,m]中的不等于a 1 a_1a1的整数,共m − 1 m-1m1种情况,假设选定的数值为a 2 a_2a2
第3步确定第3个元素的值,可以是[ 1 , m ] [1,m][1,m]中的不等于a 2 a_2a2的整数,共m − 1 m-1m1种情况,假设选定的数值为a 3 a_3a3

n nn步确定第n nn个元素的值,可以是[ 1 , m ] [1,m][1,m]中的不等于a n − 1 a_{n-1}an1的整数,共m − 1 m-1m1种情况,假设选定的数值为a n a_nan

因此相邻元素数值都不想等的序列数量为m ⋅ ( m − 1 ) n − 1 m\cdot(m-1)^{n-1}m(m1)n1

n nn个数值范围为[ 1 , m ] [1,m][1,m]的整数构成序列中,存在相邻两元素数值相等的序列的数量,为总序列数量减去相邻元素数值都不想等的序列的数量,即m n − m ⋅ ( m − 1 ) n − 1 m^n-m\cdot(m-1)^{n-1}mnm(m1)n1
P = 100003 P=100003P=100003,可以通过质数判定方法确定P PP为质数。
因此所求结果为:
( m n − m ⋅ ( m − 1 ) n − 1 ) m o d P = ( m n m o d P − ( m ⋅ ( m − 1 ) n − 1 ) m o d P ) m o d P (m^n-m\cdot(m-1)^{n-1}) \bmod P\\ =(m^n \bmod P-(m\cdot(m-1)^{n-1})\bmod P)\bmod P(mnm(m1)n1)modP=(mnmodP(m(m1)n1)modP)modP
可以直接使用快速幂求解。
也可以使用费马小定理降幂求解。根据费马小定理,当p pp为质数时:a b m o d p = ( a m o d p ) b m o d ( p − 1 ) m o d p a^b\bmod p = (a\bmod p)^{b\bmod (p-1)}\bmod pabmodp=(amodp)bmod(p1)modp
所以:( m n m o d P − ( m ⋅ ( m − 1 ) n − 1 ) m o d P ) m o d P = ( ( m m o d P ) n m o d ( P − 1 ) − ( m m o d P ) ( ( m − 1 ) m o d P ) ( n − 1 ) m o d ( P − 1 ) ) m o d P (m^n \bmod P-(m\cdot(m-1)^{n-1})\bmod P)\bmod P\\ =((m\bmod P)^{n\bmod (P-1)}-(m\bmod P)((m-1)\bmod P)^{(n-1)\bmod (P-1)})\bmod P(mnmodP(m(m1)n1)modP)modP=((mmodP)nmod(P1)(mmodP)((m1)modP)(n1)mod(P1))modP

注意:两项相减结果可能为负,所以最后一步必须进行数学取模。

【题解代码】

解法1:直接使用快速幂求解
#include<bits/stdc++.h>usingnamespacestd;#defineMOD(a,b)(((a)%(b)+(b))%(b))constintP=100003;typedeflonglongLL;LLfastPow(LL a,LL b,LL m){LL r=1;while(b>0){if(b%2==1)r=r*a%m;a=a*a%m;b/=2;}returnr;}intmain(){LL m,n;cin>>m>>n;cout<<MOD(fastPow(m,n,P)-m*fastPow(m-1,n-1,P),P);return0;}
解法2:使用费马小定理降幂求解
#include<bits/stdc++.h>usingnamespacestd;#defineMOD(a,b)(((a)%(b)+(b))%(b))constintP=100003;typedeflonglongLL;LLfastPow(LL a,LL b,LL m){LL r=1;while(b>0){if(b%2==1)r=r*a%m;a=a*a%m;b/=2;}returnr;}intmain(){LL m,n;cin>>m>>n;cout<<MOD(fastPow(m%P,n%(P-1),P)-m*fastPow((m-1)%P,(n-1)%(P-1),P),P);return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 12:57:59

Excalidraw呈现组织变革管理:转型过程可视化

Excalidraw 与 AI 赋能组织变革&#xff1a;让转型“看得见” 在一次某大型金融企业的数字化转型研讨会上&#xff0c;项目负责人面对会议室里十几位来自不同部门的高管&#xff0c;试图用一页密密麻麻的 PPT 解释新的 DevOps 流程。不到三分钟&#xff0c;有人开始低头看手机&…

作者头像 李华
网站建设 2026/5/10 5:54:04

63、Windows 7 用户账户与组账户管理全攻略

Windows 7 用户账户与组账户管理全攻略 一、用户账户管理 在允许他人登录你的计算机之前,你需要为他们创建用户账户,同时还可以对已有账户进行一系列管理操作。 1. 创建本地用户账户 创建本地用户账户可按以下步骤操作: 1. 点击“开始”→“控制面板”→“用户账户和家…

作者头像 李华
网站建设 2026/5/13 10:16:07

78、深入了解Windows 7组策略与媒体中心

深入了解Windows 7组策略与媒体中心 1. Windows 7组策略设置与多本地组策略对象 在Windows 7系统中,组策略的设置和管理是系统管理的重要部分。当启用策略后,需要设置选项下指定的任何附加参数,然后点击“应用”,再点击“确定”保存设置。策略更改会在组策略刷新时应用,…

作者头像 李华
网站建设 2026/5/10 14:27:22

Excalidraw绘制AR/VR交互:沉浸式体验路径图

Excalidraw绘制AR/VR交互&#xff1a;沉浸式体验路径图 在设计一款新的VR教育应用时&#xff0c;团队常面临这样的困境&#xff1a;产品经理用文档描述用户从戴上头显到进入三维课堂的完整流程&#xff0c;UI设计师却难以快速将其转化为可视化的动线图&#xff1b;工程师关心手…

作者头像 李华
网站建设 2026/5/9 14:54:51

Excalidraw构建元宇宙空间:虚拟世界架构设想

Excalidraw构建元宇宙空间&#xff1a;虚拟世界架构设想 在远程协作成为常态的今天&#xff0c;团队沟通中的“语境缺失”问题愈发突出。工程师讨论系统架构时&#xff0c;仅靠文字描述难以对齐认知&#xff1b;产品与开发交接需求时&#xff0c;缺少一个共同的视觉锚点。这种…

作者头像 李华
网站建设 2026/5/11 2:34:50

24、网络资源访问与Windows 7域管理全解析

网络资源访问与Windows 7域管理全解析 1. 网络资源访问权限 在网络环境中,资源的访问权限至关重要。对于打印机资源,主要有以下几种权限: - 读取权限(Read Permissions) :拥有此权限的用户可以读取分配的权限。当打印机共享时,“所有人”组除了获得打印权限外,还会…

作者头像 李华