标签:problem str turn 题意 for 第一天 main color sizeof
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\n",ma); 30 } 31 32 return 0; 33 }
标签:problem str turn 题意 for 第一天 main color sizeof
原文地址:http://www.cnblogs.com/kickit/p/7419696.html