题目描述

有 N 级的台阶,你一开始在底部,每次可以向上迈最多 K 级台阶(最少 1 级),问到达第 N 级台阶有多少种不同方式。

输入输出格式

输入格式:

两个正整数N,K。

输出格式:

一个正整数,为不同方式数,由于答案可能很大,你需要输出 ans mod 100003 后的结果。

输入输出样例

输入样例#1:

5 2

输出样例#1:

8

说明

对于 20% 的数据,有 N ≤ 10, K ≤ 3;

对于 40% 的数据,有 N ≤ 1000;

对于 100% 的数据,有 N ≤ 100000,K ≤ 100。

思路

每次上台阶时肯定都是一次走上去,那么就看上次所在台阶的位置。假如说一次上四个台阶,上到第50层。那么到第五十层的步数为在第49,48,47,46,45这些方案数相加。

写一个递推关系就好了:a[n]=a[n-1]+a[n-2]+……+a[n-k] 。对于到达每一层都是这样的方法,一直算下去就好了。注意要每次取模

AC代码

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <string>
#define ll long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
#define INF 0x3f3f3f3f
const double E=exp(1);
const int maxn=1e6+10;
const int mod=100003;
using namespace std;
int a[maxn];
int main(int argc, char const *argv[])
{ios::sync_with_stdio(false);int n,k;cin>>n>>k;ms(a);a[0]=1;for(int i=1;i<=n;i++){for(int j=1;j<=k&&j<=i;j++)a[i]=(a[i]%mod+a[i-j]%mod)%mod;}cout<<a[n]%mod<<endl; return 0;
}

转载于:https://www.cnblogs.com/Friends-A/p/10324431.html

洛谷 1192:台阶问题(递推,DP)相关推荐

  1. [洛谷]P1936 水晶灯火灵 (#递推 -1.3)

    题目描述 爱与愁大神兴高采烈地踏出妖精系道馆--他已经获得了妖精系徽章(鼓掌)!可是一出门就遇到一群パンプジン(Because today is Halloween)!仲谋半?没事,爱与愁大神手上还仅 ...

  2. 2019 ICPC Asia Nanjing Regional C.Digital Path(拓扑排序递推DP)

    整理的算法模板合集: ACM模板 题目传送门 三段题面,只有第三段是有用的-前两段又长单词又难懂,就是在讲故事...不过针对四种情况给出四个图帮助我们理解题意是真的赞,可能出题人怕我们看不懂吧(第一句 ...

  3. 解题报告:luogu P2272 [ZJOI2007]最大半连通子图(tarjan缩点、递推DP、hash、set判重)

    这时yxc上课时讲解的截图. 一般用到tarjan算法的题目步骤都非常相似: tarjan算法 缩点,建图(这里要判重) 按照拓扑序递推(这里缩点以后逆向就已经是拓扑序了)/ 循环遍历新图求解答案. ...

  4. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  5. hdu1978(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始: 外循环扫描所有点dp[x] ...

  6. 递推DP URAL 1119 Metro

    题目传送门 1 /* 2 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 3 递推DP:仿照JayYe,处理的很巧妙, ...

  7. python跳台阶_递推典型算法:猴子爬山,跳台阶,爬楼梯(牛客网)、魔法深渊(快手)----Python、Java...

    递推算法的基本思想是把一个复杂的.庞大的计算过程转化为简单过程的多次重复,其首要问题是得到相邻的数据项之间的关系,即递推关系.以猴子爬山为例. 1.问题的提出 一个顽猴在一座有30级太假的小山上爬山活 ...

  8. 递推DP HDOJ 5459 Jesus Is Here

    题目传送门 题意:简单来说就是sn = sn-1 + sn-2递推而来,求其中所有c字符的:∑i<j:sn[i..i+2]=sn[j..j+2]=''cff"(j−i) mod 530 ...

  9. 递推DP UVA 1366 Martian Mining

    题目传送门 1 /* 2 题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯, 3 到达边界后把沿途路上的权值相加求和使最大 4 DP:这是道递推题, ...

  10. POJ 1661 Help Jimmy(递推DP)

    思路: 1. 每个板子有左右两端, dp[i][0], dp[i][1] 分别记录左右端到地面的时间 2. 从下到上递推计算, 上一层的板子必然会落到下面的某一层板子上, 或者地面上 总结: 1. 计 ...

最新文章

  1. 清华大四本科生2篇一作论文入选ICML 2020,后浪果然翻涌
  2. Python从菜鸟到高手(5):数字
  3. java匿名内部类举例和内部类举例
  4. 关于U3D场景烘焙的一个想法
  5. pythonsuper函数_认识python中的super函数
  6. 贪心算法之最小堆实现霍夫曼编码
  7. Linux学习笔记(二):cd命令的使用
  8. MongoDB学习总结(五) —— 安全认证
  9. Python标准库 - subprocess
  10. SAP UI5 SmartForm 智能表单控件的使用方法介绍试读版
  11. 电工基础知识电线电缆常识80问答
  12. 大学本科基于html5毕业设计题目50例
  13. Flash8-动态显示汉字乱码问题的解决
  14. h2o flow初探
  15. 表单注册表单注册表单注册
  16. 明日之后怎么跳过实名认证_明日之后新手视频攻略如何跳过 明日之后新手教程内容说明...
  17. 前端JSer装逼手册
  18. C# WebForm
  19. HTML a标签之空链接
  20. OSChina 周一乱弹 —— 济南源创会特刊

热门文章

  1. KNN的k该如何选择
  2. Reverse Integer(C++)
  3. seata xid是什么_Spring Cloud Alibaba分布式事务解决框架Seata概念入门篇
  4. python循环捕捉异常_python – 如何在for循环迭代器中捕获异常
  5. 现代通信原理5.1:信号的希尔伯特变换
  6. Deep Reinforcement Learning for Dialogue Generation-关于生成对话的深度强化学习
  7. Numpy中高维axis的操作个人理解
  8. rocketmq存储消息mysql_消息中间件—RocketMQ消息存储(一)
  9. mysql 多主一从备份_Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份 | 很文博客...
  10. 怎么修改mysql主键(id)的值为自增