社区讨论

求助台阶问题

学术版参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo1r9y0x
此快照首次捕获于
2023/10/23 01:41
2 年前
此快照最后确认于
2023/11/03 02:20
2 年前
查看原帖
p1192 台阶问题 我看题解有一个大佬写的 有一步不太明白 就是进入循环j之后 两个循环的意思以及里面为什么 要判断i>=j
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,k;
long long mad=1000010;
long long dp[10086];
int main()
{
   ios::sync_with_stdio(false);
   cin>>n>>k;
   dp[0]=dp[1]=1;//初始时第一级台阶和第二级台阶要为1
   for(int i=2;i<=n;i++)//前两级台阶算过了 不能重复计算 所以从2开始
   {
   	for(int j=1;j<=k;j++)//走内层循判断可以走的级数
   	{
   		//遍历所有台阶
   		if(i>=j)
   		{
   			dp[i]=(dp[i]+dp[i-j])%mad;
   		}
   	}
   }
   cout<<dp[n];
   return 0;
} 

回复

7 条回复,欢迎继续交流。

正在加载回复...