Time Limit: 2000/1000 MS (java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 50304 Accepted Submission(s): 20162
人稱“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
Author
lcy.
和hdu2044一樣,這也是一道遞推題。 我們知道當只有一個格子也就是f[1]的時候 有三種顏色可以 所以f[1]=3,同理可以算出f[2]=6;f[3]=6; 當n=4時,若前三格的情況是f[3]的涂法時,那么第四格就被確定了, 這一步相當于加上f[n-1] 若第三格不考慮首尾時,還有一種涂法,相應的第四格有兩種涂法 這一步相當于加上2*f[n-2] 所以得出遞推式子:f[n]=f[n-1]+2*f[n-2]
#include<stdio.h>int main(){ long long f[51]; int i,num; f[1]=3;f[2]=f[3]=6; for(i=4;i<51;i++) f[i]=f[i-1]+2*f[i-2]; while(~scanf("%d",&num)) printf("%I64d/n",f[num]); return 0;}新聞熱點
疑難解答