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

蓝桥杯备考:动态规划线性dp之下楼梯问题进阶版

老规矩,按照dp题的顺序

step1 定义状态表达  f[i]表示到第i个台阶的方案数

step2:推导状态方程

step3:初始化 初始化要保证 1.数组不越界 2.推导结果正确

如图这种情况就越界了,我们如果把1到k的值全初始化也不现实,会增加程序的时间复杂度

我们可以这样,我们把数组下标为0的位置设置成1,那么f[1]=f[0] f[2] = f[1]+f[0]=2 

f[3] = f[0]+f[1]+f[2] = 4      这个是可以的

step4:找结果

这个结果就是f[n]的值

代码:

#include <iostream>
using namespace std;
const int N = 1e5+10,mod=1e5+3;
int f[N];
int n,k;
int main()
{
	cin >> n >> k;
	f[0] = 1;
	for(int i = 1;i<=n;i++)
	{
		for(int j = 1;j<=k&&i-j>=0;j++)
		{
			f[i] +=f[i-j];
			
		}
		f[i]%=mod;
	}
	cout << f[n] << endl;
	
	
	return 0;
}

相关文章:

  • MacOS 10.15上使用Docker遇到的几个问题
  • Python中的内置函数 - 第一章
  • Linux:vim快捷键
  • VBA中类的解读及应用第二十一讲:利用类方法判断任意单元格类型-4
  • 原生android 打包.aar到uniapp使用
  • 《玩转AI大模型:从入门到创新实践》(12)LLM初步(4)
  • Redis数据库面试——数据结构类型知识
  • Android Flow操作符分类
  • FastGPT 引申:Rerank 函数调用实例
  • 【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(成功版)
  • ArcGIS Pro 制作地理区位图的实用技巧与步骤
  • Node.js学习分享(上)
  • Python的那些事第三十九篇:MongoDB的Python驱动程序PyMongo
  • Java方法详解
  • 蓝桥杯 之 贪心与排序
  • 【经济学】第一章:经济学基础:生产、市场与宏观经济的数学透视
  • 3.多线程获取音频AI的PCM数据
  • C++STL概览
  • React 之 Redux 第二十八节 学习目标与规划大纲及概要讲述
  • C#将Box企业网盘里的文件批量上载到S3,并导入Redshift
  • 短网址生成链接/网站关键词怎么优化到首页
  • 购买虚拟机建网站/重庆百度推广
  • 大型的网站后台用什么做/淘宝关键词排名是怎么做的
  • 宁波汽车网站建设/线上培训平台
  • 网站功能介绍是什么/短视频推广
  • 怎样创建行业门户网站/沈阳seo技术