标签:
http://ac.jobdu.com/problem.php?pid=1389
这样的题只要分类不要重复就没问题了。
可以分为,
第一次跳0步,也就是直接跳到终点。
第一次跳1步,然后在跳f(i-1)
第一次跳2步,然后在跳f(i-2)
...
DP我果断是弱爆了,第一次写居然把第一次跳的那个+1,想了下A了
#include <cstdio> #include <cstring> #include <iostream> #include <cstdio> #include <algorithm> using namespace std; #define LL long long const int SIZE = 50+1; int n; LL f[SIZE]; void init(){ f[1]=1; f[0]=0; for(int i=2;i<=50;i++){ f[i] = 1; for(int j=1;j<i;j++){ f[i] += f[i-j]; } } } int main(){ init(); while(cin >> n){ cout << f[n] << endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u011026968/article/details/48087609