设为首页 加入收藏

TOP

HDU 2569
2014-11-23 21:27:56 来源: 作者: 【 】 浏览:1
Tags:HDU 2569

题目描述
HDU 2569
分析
使用递推的方法可以解决。
设当悬崖的长度为n时,到达彼岸的方法有F[n]种。
显然,F[1] = 3, F[2] = 9, F[3] = 21 假设已知F[n-1]与F[n-2],寻求F[n]与F[n-1]、F[n-2]之间的关系。
分为两种情况:
(1)第n-2段与n-1段颜色相同,则第n段可以为三种颜色的任意一种:
F[n-2] * 3
(2)第n-2段与n-1段颜色不同,第n段只能为其中的两种颜色:
(F[n-1] - F[n-2]) * 2


故,总的方法数为:F[n-2] * 3 + (F[n-1] - F[n-2]) * 2 = F[n-1] * 2 + F[n-2]
源码

#include 

int main()
{
    int result[40];
    int i;

    result[1] = 3;
    result[2] = 9;
    result[3] = 21;
    for (i = 4; i < 40; i ++)
    {
        result[i] = result[i-1]*2 + result[i-2];
    }

    int C, n;
    scanf("%d", &C);
    while (C --)
    {
        scanf("%d", &n);
        printf("%d\n", result[n]);
    }

    return 0;
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3723 Conscription 下一篇数对之差的最大值

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)