PRoblem Description 人稱(chēng)“AC女之殺手”的超級(jí)偶像LELE最近忽然玩起了深沉,這可急壞了眾多“Cole”(LELE的粉絲,即”可樂(lè)”),經(jīng)過(guò)多方打探,某資深Cole終于知道了原因,原來(lái),LELE最近研究起了著名的RPG難題:
有排成一行的n個(gè)方格,用紅(Red)、粉(Pink)、綠(Green)三色涂每個(gè)格子,每格涂一色,要求任何相鄰的方格不能同色,且首尾兩格也不同色.求全部的滿(mǎn)足要求的涂法.
以上就是著名的RPG難題.
如果你是Cole,我想你一定會(huì)想盡辦法幫助LELE解決這個(gè)問(wèn)題的;如果不是,看在眾多漂亮的痛不欲生的Cole女的面子上,你也不會(huì)袖手旁觀吧?
Input 輸入數(shù)據(jù)包含多個(gè)測(cè)試實(shí)例,每個(gè)測(cè)試實(shí)例占一行,由一個(gè)整數(shù)N組成,(0 < n <=50)。
Output 對(duì)于每個(gè)測(cè)試實(shí)例,請(qǐng)輸出全部的滿(mǎn)足要求的涂法,每個(gè)實(shí)例的輸出占一行。
Sample Input 1 2
Sample Output 3 6
Author lcy
思路 S(1)=3,S(2)=6; 當(dāng)n>2時(shí),如果最后一個(gè)格子的顏色可以和第一個(gè)格子的顏色相同,則方法為 3*2^(n-1)種。 如果最后一個(gè)格子的顏色與第一個(gè)格子顏色不同,方法為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:最開(kāi)始看成了n*n的方格,這可咋做啊……QAQ
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注