• 激光样式


    x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种开3台,计算30台满足条件的一共几种方式

    #include <stdio.h>
    #include <iostream>
    #include <math.h>
    #include <string.h>
    using namespace std;
    const double PI=acos(-1.0);
    int n;
    int ans;
    int a[105];
    
    void dfs(int pos,int is){//is=0 表示前一个灯不亮 is=1表示前一个灯亮 
        if(pos==n){//结束的标志是pos-n=0(若dfs(1,0)则此处是n+1) 
            ans++;
            return;
        }
        if(!is){//判断前一个等不亮 则本次等可以亮 
            dfs(pos+1,1);
        }
        dfs(pos+1,0);//不管前一个灯亮不亮 本次灯都可以不亮 
    }
    int main(){
        n=30;
        dfs(0,0);// 0 0 表示从所有灯都不亮开始 
        cout<<ans;
        return 0; 
    }
  • 相关阅读:
    如何绕过chrome的弹窗拦截机制
    自我介绍
    注册页面的编写
    Roadmap学习目标
    Position
    poj2506 Tiling
    poj3278 Catch That Cow
    poj3624 Charm Bracelet
    钢条切割问题带你彻底理解动态规划
    poj1328 Radar Installation
  • 原文地址:https://www.cnblogs.com/xusi/p/12336694.html
Copyright © 2020-2023  润新知