zoukankan      html  css  js  c++  java
  • HDU2045

    不容易系列之(3)—— LELE的RPG难题

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 61475    Accepted Submission(s): 24560


    Problem Description
    人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:

    有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

    以上就是著名的RPG难题.

    如果你是Cole,我想你一定会想尽办法帮助LELE解决这个问题的;如果不是,看在众多漂亮的痛不欲生的Cole女的面子上,你也不会袖手旁观吧?

     
    Input
    输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50)。
     
    Output
    对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。
     
    Sample Input
    1 2
     
    Sample Output
    3 6
     
     
    分析:
    当n<=3的时候,结果分别是3 ,3 ,6,这个我们可以看出来,仔细的看了题目,发现题目是包含在HDU递推专项练习题里面的。。。,所有才想到使用递推,
    递推公式:f(n)=f(n-1)+2*f(n-2)  n>3
    当n>3的时候,n-1的颜色只可能有两种情况,不行你推一下
    第一种:n-1的颜色和1的颜色不同
    第二种:n-1的颜色和1的颜色相同
    第一种情况的时候:f(n-1)
    第二种情况的时候:f(n-2)*第n个格子的颜色数=f(n-2)*2
    所以二者相加
    f(n)=f(n-1)+f(n-2)*2  n>3
     
     
    代码如下:
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n;
     5     while(~scanf("%d",&n))
     6     {
     7         long long a[51];
     8         int i;
     9         a[1]=3;
    10         a[2]=6;
    11         a[3]=6;
    12         for(i=4;i<=50;i++)
    13         {
    14             a[i]=a[i-1]+a[i-2]*2;
    15         }
    16         printf("%lld
    ",a[n]);
    17     }
    18     return 0;
    19 }

    不足错误之处欢迎拍砖哦!!!

  • 相关阅读:
    Python使用SMTP模块、email模块发送邮件
    harbor搭建及使用
    ELK搭建-windows
    ELK技术栈之-Logstash详解
    【leetcode】1078. Occurrences After Bigram
    【leetcode】1073. Adding Two Negabinary Numbers
    【leetcode】1071. Greatest Common Divisor of Strings
    【leetcode】449. Serialize and Deserialize BST
    【leetcode】1039. Minimum Score Triangulation of Polygon
    【leetcode】486. Predict the Winner
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8616278.html
Copyright © 2011-2022 走看看