线性dp板子(违规紫衫)
本蒟蒻在 csdn 上看到一篇很好的动规思路 链接
依据题意,易得出转移方程式 $f(n)=f(n-1)+f(n-2)+f(n-3)$
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=20;
int dp[N];
int main(){
int n;
cin>>n;
dp[0]=1,dp[1]=1,dp[2]=2;
for(int i=3;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
}
cout<<dp[n]<<endl;
return 0;
}
时间复杂度 $O(n)$