人稱「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的粉絲,即 可樂 經過多方打探...