用dp[i]表示第i种的情况,第i个上放一个木人,共有dp[i-3]+1种情况。不放木人共有dp[i-1]种情况。所以dp[i]=dp[i-1]+1+dp[i-3]。
#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;}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/