HDU2018 母牛的故事(基础DP)

HDU2018 母牛的故事(基础DP)

题目链接

HDU2018

题意

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

解析

这个就是很简单的那种,斐波那契数列递推。
f(1) = 1
f(2) = 2
f(3) = 3
f(4) = 4
对于 n>=5
有f(n) = f(n-1)+f(n-3)
(往前数三年,对于n=5就是第二年出生的母牛也要生了)
然后就没了

代码

#include
#define ll long long
using namespace std;
const int MAXN = 500;
ll ans[MAXN];
int n;
ll solve()
{
	ans[0] = 0;
	ans[1] = 1;
	ans[2] = 2;
	ans[3] = 3;
	ans[4] = 4;
	for (int i = 5; i <= n; i++)
	{
		ans[i] = ans[i-1]+ans[i-3];
	}
	return ans[n];
}
int main()
{
	while (~scanf("%d", &n) && n != 0)
	{
		printf("%lld\n", solve());
	}
	return 0;
}

你可能感兴趣的:(#,动态规划DP,基础dp,题解)