zoukankan      html  css  js  c++  java
  • HDOJ-2045

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

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


    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
     

    不容易系列之三:

    本题可以先将最后一格看做与其他方格无异,即没有首尾不同色的规定,这时方案个数为3*2^(n-1),我们仅需将首尾相等的情况减去就好了,即a(n) = 3*2^(n - 1) - a(n - 1)

    还有一点需要注意的就是数据大小,Kiven在这被坑了一发。。

    AC代码:

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 using namespace std;
     5 
     6 const int MAX=60;
     7 long long a[MAX];//注意数据大小 
     8 int n;
     9 
    10 int main(){
    11     a[1]=3;
    12     a[2]=6;
    13     for(int i=3;i<MAX;i++)//从第三项开始符合递推 
    14     a[i]=3*pow(2,i-1)-a[i-1];
    15     while(scanf("%d",&n)!=EOF){
    16         printf("%lld
    ",a[n]);
    17     }
    18     return 0;
    19 } 
  • 相关阅读:
    用互不相同的fib数列的数分解任意整数。
    2015 初赛TG 错题解析
    【模板】判断二叉查找树
    【初赛】完善程序题解题技巧 && 近六年PJ完善程序真题解析
    [NOIP 2012普及组 No.2] 寻宝
    [NOIP 2012普及组 No.1] 质因数分解
    [NOIP 2013普及组 No.4] 车站分级
    [NOIP 2013普及组 No.3] 小朋友的数字
    [NOIP 2013普及组 No.2] 表达式求值
    [NOIP 2013普及组 No.1] 计数问题
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5475322.html
Copyright © 2011-2022 走看看