先暴力写了一个DFS,然后找规律。。
#include#include #include #include using namespace std;__int64 dp[1000];int main(){ dp[1]=1; dp[2]=2; dp[3]=3; dp[4]=5; for(int i=5;i<=60;i++) dp[i]=dp[i-1]+1+dp[i-3]; int n; while(~scanf("%d",&n)) printf("%I64d\n",dp[n]); return 0;}