zoukankan      html  css  js  c++  java
  • HDU 2569(简单的递推)

    彼岸

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 5533    Accepted Submission(s): 3213


    Problem Description
    突破蝙蝠的包围,yifenfei来到一处悬崖面前,悬崖彼岸就是前进的方向,好在现在的yifenfei已经学过御剑术,可御剑轻松飞过悬崖。
    现在的问题是:悬崖中间飞着很多红,黄,蓝三种颜色的珠子,假设我们把悬崖看成一条长度为n的线段,线段上的每一单位长度空间都可能飞过红,黄,蓝三种珠子,而yifenfei必定会在该空间上碰到一种颜色的珠子。如果在连续3段单位空间碰到的珠子颜色都不一样,则yifenfei就会坠落。
    比如经过长度为3的悬崖,碰到的珠子先后为 “红黄蓝”,或者 “蓝红黄” 等类似情况就会坠落,而如果是 “红黄红” 或者 “红黄黄”等情况则可以安全到达。
    现在请问:yifenfei安然抵达彼岸的方法有多少种?
     
     1 //该题递推时;第n项应该分开考虑n-1和n-2是否相同
     2 //(1)如果相同那么n就可以没有顾虑的选择3种中的任意一种,则等价于n-2所有的取值所以a[n-2]*3
     3 //(2)如果不同那么等价于a[n-1]-a[n-2],即全部减去相同的的那么都应该是不同的,这一部分考虑的就是第n必选择一个和前两相等,那么就应该是(a[n-1]-a[n-2])*2
     4 //一直未找到不同的时候的情况,一直未想到用全部情况减去相同的情况就是不同的情况,
     5 //思维有待提高,灵活性不够 
     6 #include<iostream>
     7 #include<cstdio>
     8 using namespace std ;
     9 
    10 long long a[43];
    11 void create_table()
    12 {
    13     a[1]=3,a[2]=9;
    14     for(int i=3;i<40;i++)
    15     {
    16         a[i]=a[i-2]*3+(a[i-1]-a[i-2])*2;
    17     }
    18 }
    19 int main ()
    20 {
    21     create_table();
    22     int T; cin>>T;
    23     while (T--)
    24     {
    25         int n; cin>>n;
    26         cout<<a[n]<<endl;
    27     }
    28     return 0;
    29 }
     
  • 相关阅读:
    shell & awk 变量传递
    ubuntu下SVN服务器安装配置
    zabbix客户端配置
    python操作Excel读写--使用xlrd
    Zabbix Agent-Windows平台配置指导
    centos6.5下Zabbix系列之Zabbix安装搭建及汉化
    Centos 下安装Zabbix Linux 客户端
    zabbix监控mysql主从复制
    Zabbix利用msmtp+mutt发送邮件报警
    vue props传数组爬坑
  • 原文地址:https://www.cnblogs.com/Yokel062/p/10137792.html
Copyright © 2011-2022 走看看