5.小华爬泰山

2023-11-05 12:31
文章标签 泰山 小华

本文主要是介绍5.小华爬泰山,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视频讲解:小华爬泰山_哔哩哔哩_bilibili


解题思路:

1. 在爬楼梯的基础上设置了陷阱,那么在每一次计算当前楼梯的方案数的前提下,一定要判断这个楼梯是否是陷阱,如果是陷阱,则方案数为0,而不能在全部计算完以后才将m个阶梯的方案数设为0(想想为什么)?

2.接下来就是处理陷阱楼梯,可以使用打标记的方案,设置一个布尔数组,将陷阱的楼梯全部标记为1,方便步骤1的判断

3.解决初始化的问题,一步可以上1级,2级,3级楼梯,那么上第一级台阶的方案数为1,第二级的方案数为2,第3级的方案数为4(1,1,1,1),(2,1),(1,2),(3)种,在这里要想一下,如果陷阱台阶出现在这三个初始化的台阶上的时候会有什么情况呢?

4.特殊判断:

(1)当第一级台阶是陷阱的话,dp[1]=0;

(2)当第二级台阶是陷阱的话,dp[2]=0;

(3)当第一级台阶是陷阱,第二级不是的时候,dp[1]=0,dp[2]=1;

(4)当第三级台阶是陷阱的话,dp[3]=0;

(5)当第一级不是陷阱,第二不是陷阱,第三不是陷阱的话dp[3]=4;

(6)当第一级是陷阱,第二不是陷阱,第三不是陷阱的话dp[3]=2;

(7)当第一级不是陷阱,第二级是陷阱的话,第三不是陷阱的话dp[3]=2;

(8)当第一阶是陷阱,第二级是陷阱,第三不是陷阱的话dp[3]=1;

   至此,初始化完成。

5,接下来就是挨个判断以后的台阶


#include<bits/stdc++.h>
using namespace std;
bool flag[5000];
const int mod=100003;
long long dp[5000]; 
int main()
{int n,m,x;cin>>n>>m;for(int i=1;i<=m;i++){cin>>x;flag[x]=1;//表示x号楼梯是陷阱 }dp[1]=1;//初始化 dp[2]=2;dp[3]=4;if(flag[1]==1)//如果台阶1是陷阱 {dp[1]=0;//台阶1方案数为0 if(flag[2]==1)//如果台阶2也是陷阱 {dp[2]=0;//台阶2的方案数为0 dp[3]=1;//台阶3的方案数为1 }else//如果台阶2不是陷阱的话 {dp[2]=1;//台阶2的方案数为1 dp[3]=2;//台阶3的方案数为2 }}else//如果台阶1不是陷阱的话 {if(flag[2]==1)//如果台阶2是陷阱{dp[2]=0;//台阶2的方案数为0 dp[3]=2;//台阶3的方案数为2 }}if(flag[3]==1)//如果台阶3是陷阱 dp[3]=0;//台阶3的方案数为0 for(int i=4;i<=n;i++){if(flag[i]!=1)dp[i]=(dp[i-1]%mod+dp[i-2]%mod+dp[i-3]%mod)%mod;}if(dp[n]==0)cout<<-1;elsecout<<dp[n];return 0;
}

这篇关于5.小华爬泰山的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349886

相关文章

泰山派小手机---ubuntu 环境的搭建

问题: 本来我的 泰山派的 ubuntu  虚拟机环境已经搭建好了,但是由于一直到捣鼓 neovim ,把虚拟机 内核搞崩溃,所以从新安装一下 虚拟机。 过程: 1 首先是 安装虚拟机。 下载镜像。 https://mirrors.ustc.edu.cn/ubuntu-releases/ 然后开始 使用 VM 安装 镜像。 镜像安装完之后,我只安装一个 ssh

泰山众筹:电商创新模式引领双赢时代

一、泰山众筹:电商领域的新星 泰山众筹,作为电商领域的一股创新力量,凭借其独特的商业模式在市场中崭露头角。这一模式巧妙地将产品销售与积分众筹融为一体,为用户和平台创造了互利共赢的机遇。在泰山众筹的平台上,用户购买商品的同时能够累积积分,这些积分不仅代表了用户的消费权益,更是参与众筹、分享平台发展红利的钥匙。 二、泰山众筹的运作机制探秘 泰山众筹之所以能够在市场中稳健发展,其独特的运作

2024OD机试卷-小华地图寻宝 (java\python\c++)

题目:小华地图寻宝 题目描述 小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。 在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入。小华从入口 (0,0) 进入,任何时候只能向左,右,上,下四个方向移动一格。 请问小华最多能获得多少克黄金

泰山众筹:创新电商模式引领共赢新时代

一、泰山众筹模式概述 泰山众筹模式,作为一种创新型的电商策略,巧妙地将产品销售与积分众筹相结合,为用户和平台双方创造了互利共赢的机会。在此模式下,用户购买指定产品即可获得相应积分,进而可将这些积分投入到众筹活动中,以期在众筹成功时获得丰厚的奖励,并有机会提现。 二、泰山众筹的运作机制 泰山众筹的运作机制独具匠心,其特点主要体现在分期参与、收益递增以及风险可控三个方面。 分期参与:众

泰山众筹:低门槛高回报的电商营销新模式

大家好,我是吴军,来自一家专注于软件开发的公司,担任产品经理一职。今天,我想与大家分享一种备受瞩目的商业模式——泰山众筹。 泰山众筹之所以能够在市场上迅速走红,其背后的原因值得我们深入探讨: 首先,它的参与门槛极低。用户只需投入任意数量的积分,即可参与众筹活动,无任何门槛限制。一旦活动成功,参与者都能获得丰厚的奖励。 其次,奖励额度相当可观。出局后的用户,通常能够获得大约13%到26

泰山众筹模式:新零售市场的创新引领与共赢之路

在数字经济的浪潮下,传统的商业模式正面临挑战,而泰山众筹模式凭借其新颖的理念和独特的操作方式,正逐渐成为新零售市场的一股新势力。它不仅改变了消费者的购物体验,还为企业带来了新的发展机遇。 首先,泰山众筹模式将众筹概念融入购物过程,使购物不再只是简单的购买行为,而是成为一种充满乐趣的参与式体验。消费者在购买商品的同时,还能通过积累积分参与众筹活动,有机会获得更多惊喜与回报。这种创新的购物方

区块链BaaS云服务(16)天德链TDBC“泰山沙盒系统”

1. 测试管理 契约模型(Contract Model)管理 通过区块链软件系统所提供的 RPC、 SDK 等形式的接口,定义以“请求——响应——数据”为表现形式的接口契约模型。 测试集(Test Suite) 管理 通过建立接口契约模型之间的关系,从而以区块链软件系统核心业务功能或性能为目标,建立对应的自动化测试集。 测试基准(Test Benchmark)管理 建立不同分类维度下区块链

泰山派开发环境安装及SDK编译

泰山派开发环境安装及SDK编译 1、安装虚拟机、VMware2、下载必要库3、开启ssh4、查看网络5、安装samba 共享文件6、安装git 和 repo7、安装 python2 / python38、安装whiptail9、上传文件至 ubantu10、安装编译环境11、选择板级配置12、编译内核13、全编译14、固件打包15、生成镜像16、下载驱动,安装驱动17、下载固件参考链接

泰山众筹:掀起一场全民参与的购物狂潮!

随着互联网的快速发展,传统的商业模式已经无法满足消费者的多元化需求。在这个数字化时代,泰山众筹模式以其独特的魅力,正迅速成为新零售市场的热门话题。它不仅为消费者带来了前所未有的购物体验,还为企业的发展注入了新的活力。 一、众筹新风尚,让购物更有趣 泰山众筹模式将众筹的概念引入购物领域,让购物不再只是单纯的消费行为,而是一种参与、分享和创造的过程。消费者在购买产品后,可以获得积分,这些积

泰山派通过vscode PWM代码实现

1. 使用python-periphery python-periphery 库支持的PWM输出是基于Linux的PWM子系统实现的,所以要想利用该库做PWM输出, 需要板卡提供支持。像泰山派板卡,就可以完美使用 python-periphery 库实现PWM输出。 这样这样一来,就不需要我们在软件层面上利用GPIO模拟PWM输出。 1.1. 安装 python-periphery # 在