越狱(信息学奥赛一本通 1618)

本文介绍了一种使用快速幂算法解决HNOI2008中关于监狱犯人宗教信仰导致越狱可能性的问题。通过计算总状态数与不会越狱的状态数之差,有效地解决了状态数量庞大的计算难题。

【题目描述】

原题来自:HNOI 2008

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

【输入】

输入两个整数 m 和 n

【输出】

可能越狱的状态数,对 100003 取余。

【输入样例】

2 3

【输出样例】

6

【提示】

样例说明

6 种状态为:{0,0,0},{0,0,1},{0,1,1},{1,0,0},{1,1,0},{1,1,1}

数据范围与提示:

对于全部数据,1≤m≤108,1≤n≤1012 。

 


 

当然一开始我并没有想到可以用快速幂的方法,看到题目以后马上联想到DP啥子的,然鹅事实证明用快速幂最为简便

直接正面刚去求有多少种状态的话肯定是会爆掉而且还没有什么好方法,那么正难则反,我们可以通过用总状态数-不会越狱的状态数来得到答案

并且不难发现,总状态数=m^n,不会越狱的状态数=(m-1)^(n-1)*m(乘法原理,第一个监狱的犯人可能有m种状态,而与其相邻的第二个监狱就只能有m-1种状态,同理,其余的监狱也只能有m-1种状态),这样的话,用快速幂就特别方便啦!(σ゚∀゚)σ..:*☆ 

代码走一波:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const long long M=100003;
 4 long long m,n;//这道题基本上都是用long long类型,不然会像我一样被卡5个点死活过不去ε(┬┬﹏┬┬)3
 5 long long read()
 6 {
 7     long long x=0,f=1;
 8     char ch=getchar();
 9     while(ch<'0'||ch>'9')
10     {
11         if(ch=='-') f=-1;
12         ch=getchar();
13     }
14     while(ch>='0'&&ch<='9')
15     {
16         x=x*10+ch-'0';
17         ch=getchar();
18     }
19     return x*f;
20 }
21 void write(int x)
22 {
23     if(x<0)
24     {
25         putchar('-');
26         x=-x;
27     }
28     if(x>9) write(x/10);
29     putchar(x%10+'0');
30 }
31 
32 long long ff(long long x,long long y)
33 {
34     long long ans=1;
35     while(y)
36     {
37         if(y&1)ans=ans*x%M;
38         x=x*x%M;
39         y>>=1;
40     }
41     return ans;
42 }
43 int main()
44 {
45     m=read();n=read();
46     if(n<2)return 0*puts("0");
47     printf("%lld\n",((ff(m,n)-m*ff(m-1,n-1)%M)%M+M)%M);
48     return 0;
49 }

转载于:https://www.cnblogs.com/ljy-endl/p/11380325.html

内容概要:本文围绕基于模型预测控制(MPC)与滚动时域估计(MHE)集成的目标点镇定方法展开深入研究,重点探讨其在六自由度机械臂系统中的应用,并提供了完整的Matlab代码实现。研究充分结合MPC的多步预测、滚动优化与反馈校正能力,以及MHE对系统内部状态的高精度在线估计优势,构建了协同工作的闭环控制架构,实现了复杂非线性系统下对目标点的高精度、强鲁棒性镇定控制。文中系统阐述了MPC预测模型的建立、代价函数的设计、状态与输入约束的处理机制,以及MHE基于优化准则进行状态估计的实现流程,详细展示了算法的整体设计思路、数值实现步骤与仿真验证过程。过仿真实验验证了该集成策略在抑制外部干扰、补偿模型不确定性方面的优越性能。此外,资源还整合了多种先进控制技术与优化算法的仿真案例,涵盖机器人、电力电子、智能交等多个领域,为科研人员提供丰富的算法复现与工程参考资源。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事自动化、机器人、电力电子、智能系统等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并掌握MPC与MHE联合控制策略的设计原理与代码实现方法;② 应用于机械臂、无人机、智能车辆等复杂系统的高精度运动控制与状态估计任务;③ 为科研论文复现、工程项目开发及先进控制算法的优化改进提供可运行、可调试的代码基础。; 阅读建议:建议结合文中的算法理论描述与Matlab代码进行同步研读,重点关注MPC中预测模型构建、权重矩阵整定、约束处理以及MHE状态估计的优化求解实现细节,鼓励在仿真环境中动手调试参数,有条件的情况下可进一步在实际物理系统或高保真模型中进行验证与性能评估。
内容概要:本文研究了基于自适应状态相关黎卡提方程(SDRE)的非线性无传感器速度控制方法在永磁同步电机(PMSM)驱动系统中的应用,并过Simulink进行仿真验证。该方法摒弃传统机械传感器,构建高精度非线性状态观测器,结合自适应SDRE控制器实现对电机转速与位置的实时估计与闭环控制,有效克服系统参数摄动、外部负载扰动及建模不确定性带来的影响。研究重点在于设计具备在线调节能力的状态反馈增益机制,过求解时变的代数黎卡提方程实现动态最优控制律,从而在宽速域范围内,尤其是在低速与零速工况下,显著提升速度跟踪精度、系统鲁棒性与动态响应性能。仿真结果充分验证了该控制策略在抑制转速波动、加快响应速度、增强抗干扰能力以及保障系统稳定性方面的优越性,为高性能PMSM无传感器驱动提供了先进的技术解决方案。; 适合人群:电气工程、自动化、电机与控制相关专业的研究生、科研人员及从事PMSM驱动系统开发的工程技术人员。; 使用场景及目标:①应用于对可靠性与维护成本敏感的高精度工业驱动系统,如精密机床、电动汽车、航空航天设备中,替代传统依赖速度传感器的控制方案,降低系统成本与故障率;②为先进无传感器控制算法的研究与教学提供坚实的理论依据与可复现的仿真范例;③支持研究人员深入探索非线性控制理论、自适应观测器设计、最优控制策略在电机驱动领域的深度融合与实践验证。; 阅读建议:建议读者结合提供的Simulink模型进行同步仿真运行,深入剖析SDRE控制器的状态空间建模过程、雅可比矩阵线性化处理方法以及Riccati方程求解器的实现细节,重点关注系统稳定性证明与收敛性分析,同时可将其与滑模观测器(SMO)、扩展卡尔曼滤波(EKF)等主流无传感器技术进行对比研究,以全面评估其性能优势与适用边界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值