不容易系列之 3 LELE的RPG難題

2021-08-21 14:29:50 字數 1286 閱讀 6100

人稱「ac女之殺手」的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多「cole」(lele的粉絲,即"可樂"),經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題:

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

以上就是著名的rpg難題.

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

input

輸入資料報含多個測試例項,每個測試例項佔一行,由乙個整數n組成,(0output

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

sample input

1

2

sample output

3

6

感覺是個動態規劃,不知道怎樣寫動態轉移方程,但我找的規律,

如果不要求首尾不同,

f(1)= 3 ; f(n)= f (n-1) * 2 ;

要求首尾相同的話:

先考慮第n-1個階段,即 f(n-1)

f(n-1)分成兩部分,首尾相同的和首尾不同,方案數為no_ans1和yes_ans2

即 f (n-1) = no_ans1 + yes_ans1;

則  yes_ans1 = f (n-1) - no_ans1

則對於第n個階段來說,

f(n)= no_ans2 +  yes_ans2

關鍵在於   no_ans2 == yes_ans1

已知 上個階段只會得到兩種狀態,

而從上個階段滿足條件的狀態得到的兩個狀態中,一定有乙個狀態不滿足。

例:

注意: 第三個階段 g  和 p  和 第四個階段的r

此r的數量等於上個階段滿足條件的數量

#include #include using namespace std;

typedef long long int ll;

ll ans[51];

ll fac[51];

void f()

}void make()

}int main()

return 0;

}

不容易系列之 3 LELE的RPG難題

total submission s 35148 accepted submission s 14106 problem description 人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,...

不容易系列之 3 LELE的RPG難題

time limit 1000ms memory limit 32768k 有疑問?點這裡 人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題 有排成一行...

不容易系列之 3 LELE的RPG難題

time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探...