PRoblem Description 人稱“AC女之殺手”的超級偶像LELE最近忽然玩起了深沉,這可急壞了眾多“Cole”(LELE的粉絲,即”可樂”),經(jīng)過多方打探,某資深Cole終于知道了原因,原來,LELE最近研究起了著名的RPG難題:
有排成一行的n個方格,用紅(Red)、粉(Pink)、綠(Green)三色涂每個格子,每格涂一色,要求任何相鄰的方格不能同色,且首尾兩格也不同色.求全部的滿足要求的涂法.
以上就是著名的RPG難題.
如果你是Cole,我想你一定會想盡辦法幫助LELE解決這個問題的;如果不是,看在眾多漂亮的痛不欲生的Cole女的面子上,你也不會袖手旁觀吧?
Input 輸入數(shù)據(jù)包含多個測試實例,每個測試實例占一行,由一個整數(shù)N組成,(0 < n <=50)。
Output 對于每個測試實例,請輸出全部的滿足要求的涂法,每個實例的輸出占一行。
Sample Input 1 2
Sample Output 3 6
Author lcy
思路 S(1)=3,S(2)=6; 當n>2時,如果最后一個格子的顏色可以和第一個格子的顏色相同,則方法為 3*2^(n-1)種。 如果最后一個格子的顏色與第一個格子顏色不同,方法為S(n-1)種 即:S(n)+S(n-1)=3*2^(n-1);
代碼
#include<iostream>#include<cmath>using namespace std;int main(){ int n; long long RPG[51]={0,3,6}; for(int i=3;i<51;i++){ RPG[i]=3*pow(2,i-1)-RPG[i-1]; } while(~scanf("%d",&n)){ cout<<RPG[n]<<endl; } return 0;}PS:最開始看成了n*n的方格,這可咋做啊……QAQ
新聞熱點
疑難解答