爬楼梯(进阶版)
思路:
没什么难的,就是一个排序的01背包问题,秒了
#include<bits/stdc++.h>
using namespace std;int n,m;
int main(){cin>>n>>m;vector<int>dp(2000,0);dp[0]=1;for(int i=0;i<=n;i++){for(int j=1;j<=m;j++){if(i>=j){dp[i]+=dp[i-j];}}}cout<<dp[n];return 0;
}
思路:
没什么难的,就是一个排序的01背包问题,秒了
#include<bits/stdc++.h>
using namespace std;int n,m;
int main(){cin>>n>>m;vector<int>dp(2000,0);dp[0]=1;for(int i=0;i<=n;i++){for(int j=1;j<=m;j++){if(i>=j){dp[i]+=dp[i-j];}}}cout<<dp[n];return 0;
}