hdu 2018 母牛的故事

https://vjudge.net/problem/HDU-2018

题意:

rt

思路:

递推吧,首先列一个表出来

             成熟的        出生一天       。。2天    。。。3天  

第一天       1                0                         0                 0

第二天        1                1                        0                0

第三天         1                1                        1                0

第四天          1                1                        1                1

第四天           2                2                        1                1

为什么第四天的成熟的是2呢,因为第三天的时候3天的牛在四天的时候就可以生产了,所以我们在第三天的时候就要把成熟的加上三天的,这样第四天的得到的出生一天的才是正确的。记住用long long。

代码:         

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main()
 5 {
 6     int n;
 7 
 8     while (scanf("%d",&n) == 1 && n)
 9     {
10         long long dp[4];
11 
12         memset(dp,0,sizeof(dp));
13 
14         long long ma = 1;
15 
16         for (int i = 2;i <= n;i++)
17         {
18             dp[3] = dp[2];
19             dp[2] = dp[1];
20             dp[1] = ma;
21 
22             ma += dp[3];
23             dp[3] = 0;
24         }
25 
26         for (int i = 1;i <= 2;i++)
27             ma += dp[i];
28 
29         printf("%I64d
",ma);
30     }
31 
32     return 0;
33 }
原文地址:https://www.cnblogs.com/kickit/p/7419696.html