您的位置:首页 > 其它

不容易系列之(3)—— LELE的RPG难题

2017-07-05 22:54 176 查看

  链接:http://acm.hdu.edu.cn/showproblem.php?pid=2045

  明显的递推题,在涂第n个方格时,如果第n-1个方格颜色和第一个方格颜色相同,那么第n个方格有两种颜色可以涂。

  如果第n-1个方格颜色和第一个方格颜色不同,那么第n个方格只有一种颜色可以涂

  那么f(n)=f(n-1)+f(n-2)*2

  f(n-2)怎么来的呢?当第n-1个方格颜色和第一个方格颜色相同时,可以得知涂第n-1个格子时是没有选择的,只能涂一种。

  此时f(n)也就取决于f(n-2)啦

代码::

#include <stdlib.h>

long long int sum[55];
int n,i;

void init()
{
sum[1]=3;
sum[2]=6;
sum[3]=6;
for(i=4;i<=50;i++)
{
sum[i]=sum[i-1]+sum[i-2]*2;
}
}

int main()
{
init();
while(scanf("%d",&n)!=EOF)
{
printf("%lld\n",sum
);
}
return 0;
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm 递推