程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 2045 不容易系列之(3)—— LELE的RPG難題

HDU 2045 不容易系列之(3)—— LELE的RPG難題

編輯:C++入門知識

HDU 2045 不容易系列之(3)—— LELE的RPG難題




Problem Description 人稱“AC女之殺手”的超級偶像LELE最近忽然玩起了深沉,這可急壞了眾多“Cole”(LELE的粉絲,即"可樂"),經過多方打探,某資深Cole終於知道了原因,原來,LELE最近研究起了著名的RPG難題:

有排成一行的n個方格,用紅(Red)、粉(Pink)、綠(Green)三色塗每個格子,每格塗一色,要求任何相鄰的方格不能同色,且首尾兩格也不同色.求全部的滿足要求的塗法.

以上就是著名的RPG難題.

如果你是Cole,我想你一定會想盡辦法幫助LELE解決這個問題的;如果不是,看在眾多漂亮的痛不欲生的Cole女的面子上,你也不會袖手旁觀吧?


Input 輸入數據包含多個測試實例,每個測試實例占一行,由一個整數N組成,(0


Output 對於每個測試實例,請輸出全部的滿足要求的塗法,每個實例的輸出占一行。


Sample Input
1
2
設n個格子的顏色數為f[n]。 很容易算出f[1], f[2], f[3]. 假設第n-1個格子的顏色與第1個格子的顏色不相同,那麼第n個格子的顏色只能取一種顏色,也就是f[n-1]的個數。 假設相同,那麼可以取兩種顏色,兩種的個數都是f[n-2]。 那麼f[n] = f[n-1]+2*f[n-2]。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
using namespace std;
typedef long long LL;
const int maxn = 500050;
const int mod = 99999997;
const int MAX = 0x3f3f3f3f;
int t, a, b;
LL f[100];
int main()
{
    f[1] = 3;
    f[2] = 6;
    f[3] = 6;
    for(int i = 4; i <= 50; i++) f[i] = f[i-1] + 2*f[i-2];
    while(~scanf("%d", &b)) {
        printf("%I64d\n", f[b]);
    }
    return 0;
}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved