zoukankan      html  css  js  c++  java
  • GHOJ 377 信号灯

    题目描述

      通常称交通灯为红绿灯,其实是不准确的,一般信号灯有Red、Green和Yellow三种颜色。

      现在有一个巨型的交通灯,一排共N个灯,它们都可以发出有红、绿、黄三种灯光。为了显目,规定:(1)不得有灭的灯;(2)相同颜色的灯相邻不得超过3个。

      请你计算有多少种可靠的信号灯排列方案?

    输入输出格式

    输入格式

      一行,一个整数N(3<N<20)。

     

    输出格式

      一行,一个整数M,可行的方案数。

    输入输出样例

    输入样例

    4

    输出样例

    78

    题解

      我们设$a[i]$为第$i$个灯与第$i-1$个灯颜色不同的方案数。

      此时易得递推公式$a[i]=a[i-1] imes2+a[i-2] imes2+a[i-3] imes2$。

      根据定义的最终答案为$a[n]+a[n-1]+a[n-2]$。

    #include <iostream>
    
    using namespace std; 
    
    int n;
    int a[20] = {0,3,6,18};
    
    int main()
    {
        cin >> n;
        for(int i = 4; i <= n; i++) 
        {
            a[i] = a[i - 1] * 2 + a[i - 2] * 2 + a[i - 3] * 2;
        }
        cout << a[n] + a[n - 1] + a[n - 2];
        return 0;
    }
    参考程序
  • 相关阅读:
    mac-常用命令
    react-redux-数据流
    ##通讯录阶段重要代码
    ##DAY15——UICollectionView
    ##DAY14——StoryBoard
    通讯录——单例
    通讯录——选择图片
    ##DAY13——可视化编程之XIB
    ##DAY12 UITableViewCell自定义
    ##DAY10 UITableView基础
  • 原文地址:https://www.cnblogs.com/kcn999/p/10659530.html
Copyright © 2011-2022 走看看