当前位置: 首页 > news >正文

关于动态规划

题例:

问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

一、三大步骤

第一步骤:定义数组元素的含义

定义dp[i]是什么意思(所求什么就定义什么)

题例:跳上i级的台阶总共有dp[i]种跳法,要求n级即要求dp[n]

第二步骤:找出数组元素之间的关系式

求数组元素之间的关系式

例题:dp[n]=dp[n-1]+dp[n-2](可能从前一个一阶跳上来或者是两阶跳上来的方法叠加)

第三步骤:找出初始值

注意数组不允许下标位负数

例题:因为dp[2]=dp[1]+dp[0],所以需要给出dp[1]和dp[0]

dp[1]=1,dp[0]=0

第四步骤:再次检查

观察我们知道dp[2]=2,但是dp[2]=dp[1]+dp[0]=0,所以不能从2开始要从3开始

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int dp[1000];
	dp[0]=0,dp[1]=1,dp[2]=2;
		for(int i=3;i<=n;i++)
		{
			dp[i]=dp[i-2]+dp[i-1];
		}
	cout<<dp[n];
	return 0;
}

本文参考:告别动态规划,连刷40道动规算法题,我总结了动规的套路-CSDN博客

相关文章:

  • 解决 Lettuce 在 Redis 集群模式下的故障转移问题
  • 基于人工智能的医学影像关联分析:利用潜在空间几何混杂因素校正法|文献速递-深度学习医疗AI最新文献
  • WEB安全--内网渗透--利用Net-NTLMv2 Hash
  • 使用Scade实现神经网络算法
  • CMake 字段使用
  • 蓝桥杯真题--最长子序列 and 2023
  • SQL:Primary Key(主键)和Foreign Key(外键)
  • cpp自学 day20(文件操作)
  • 关于sqlsugar实体多层List映射的问题
  • 第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组题目试做(中)【本期题目:回文数组,挖矿】
  • CmLicense授权损耗规避措施
  • spring boot 实现spring mvc过程中WebMvcConfigurer接口及其相关实现类的详细对比
  • Redis 的五种数据类型面试回答
  • 安全编码课程 实验6 整数安全
  • WPF依赖注入
  • 【金仓数据库】
  • 深入解析 MySQL 中的日期时间函数:DATE_FORMAT 与时间查询优化
  • HTTP 响应头 Strict-Transport-Security 缺失漏洞
  • GraphRAG与知识图谱
  • 【数据标准】数据标准化实施流程与方法-保障机制篇
  • 网站制作的评价标准/seo搜索排名优化方法
  • 迈肯奇迹做网站/三十个知识点带你学党章
  • 跨境独立站建站公司/360搜索推广官网
  • 山东网站制作/产品市场推广方案范文
  • 企业网站seo数据/营销型制作网站公司
  • 科技网站设计案例/上海网站优化公司