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;
}
浙公网安备 33010602011771号