hdu-2045 简单递推 水

Posted friend-a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu-2045 简单递推 水相关的知识,希望对你有一定的参考价值。

题意:

  一行长度为n的方格,只能使用三种颜色R、P、G来填充,且满足相邻方块不能同色,首尾方块不能同色。给出n,输出满足条件的着色方案数。

思路:

  简单递推,由n-1个方块推导出n个方块的情况,有以下两种情况:

    1.第n-1个方块与第1个方块不同色,满足条件。直接在n-1的满足基础上添加第n个,且第

n个只有一种选择。即F[n-1];

    2.第n-1个方块与第1个方块同色,不满足F[n-1],退至F[n-2],此时添加第n个方块时有两种选择。即F[n-2]*2。

  递推公式:F[n] = F[n-1] + 2 * F[n-2]

代码:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n;
 6     long long f[55];
 7     f[1] = 3;
 8     f[2] = 6;
 9     f[3] = 6;    //注意f[3]不能用递推公式得出
10     for(int i = 4; i < 51; i++)
11     {
12         f[i] = f[i - 1] + 2 * f[i - 2];
13     }
14     while(cin >> n)
15     {
16         cout << f[n] << endl;
17     }
18     return 0;
19 }

 

以上是关于hdu-2045 简单递推 水的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2045 LELE的RPG难题(递推)

HDU 2045 不容易系列之―― LELE的RPG难题(递推)

HDU 2045不easy系列之三LELE的RPG难题(趋向于DP的递推)

HDU 2045

HDU 2045 不easy系列之—— LELE的RPG难题

HDU2045 不容易系列之—— LELE的RPG难题