hdu 2045 LELE的EPG难题

题解:

  简单递推题,如图:

 

 

从A4开始,分两类讨论:1、A4的第3个与A4的第1个颜色相同  2、第3个与第1个颜色不相同。

第1类情况A4相当于A2*2,这里的2相当于外加另外两种颜色中的一种;第2类情况A4相当于A3,因为首尾颜色不相同,第1个与第3个颜色不同,那么第4个只有1种颜色可以选择。依次类推,可得余下的数据。因为有50个方框,得用long long int 能存储。

  需要注意的是while (scanf("%d", &n) != EOF)不能写成while (scanf("%d", &n)),因为后者可能导致无限循环。

代码如下:

#include <stdio.h>

__int64 A[51] = {0, 3, 6, 6};

int main()
{	
	int i, n;
	for (i=4; i<51; i++)
		A[i] = A[i-1] + A[i-2] * 2;
	while (scanf("%d", &n) != EOF)
		printf("%I64d\n", A[n]);
	return 0;
}


 

posted on 2013-01-20 16:29  zm001  阅读(138)  评论(0)    收藏  举报