多公尺諾骨牌 DOMINO

2021-09-30 10:14:11 字數 1556 閱讀 6601

【題目描述】

jzabc對多公尺諾骨牌有很大的興趣,然而他的骨牌比較特別,只有黑的和白的。他覺得如果存在連續三個骨牌是同種顏色的,那這個骨牌排列就是不美觀的。現在他有

n個骨牌要排列,他想知道不美觀的排列的個數。他想請你幫忙進行統計不美觀排列的個數。

【輸入格式】

只有乙個正整數,即要排列的骨牌的個數。

【輸出格式】

乙個數,即不美觀的排列的個數。

【輸入樣例】 4

【輸出樣例】 6

解釋:有6

中不美觀的排列。

【資料規模】

對於20%

的資料,滿足

n<=60

對於50%

的資料,滿足

n<=600

對於100%

的資料,滿足

n<=20000

一開始不會 就沒再做

後來小夥伴們提醒了一下有規律

於是打表1-10

發現g(i+1)可以由gi*2+乙個具有斐波那契數列性質的數列中某一項推出

所以遞推出的gi

由於資料太大 用到了壓8位高精度

#include#include#includeusing namespace std;

int f[4][811];

int z[811];

int m,n=1,a,b,c;

void print(int s[811])

}void addf()

void cheng()

void jia()

int main()

{ freopen("domino.in","r",stdin);

freopen("domino.out","w",stdout);

scanf("%d",&m);

if(m<3)

{cout<<0<

別人的題解是

考慮美觀的情況,設f[i]為i個骨牌的排列中完美排列的數量。若在第i個位置上放與i-1個骨牌顏色相同的骨牌,則情況數為f[i-2],否則為f[i-1],那麼f[i]:=f[i-1]+f[i-2]。由二進位制的數量可得,此時不完美排列個數即為g[i]:=2^n-f[i]。

這個想法簡直是dbl...瞬間就跪爛了

我的理解是

當i與i-1顏色不同時

不會影響完美排列數 所以f[i]=f[i-1]

當顏色相同時

就有可能影響到完美排列

i-3i-2 i-1i

x0 11這種情況下 f[i]=f[i-1]=f[i-2]  因為從i-1到i顏色相同 i-1和i對f[i]沒做出貢獻 與f[i-2]相比 f[i]既沒增加也沒減少 

x1 11這種情況下f[i]=f[i-2]  因為從i-2到i顏色相同 i-1和i對f[i]沒做出貢獻 與f[i-2]相比 f[i]既沒增加也沒減少

所以f[i]=f[i-1]+f[i-2]

不完美的就是2^n-f[i]

orz

多公尺諾骨牌

100張多公尺諾骨牌整齊地排成一列,按順序編號為1 2 3 4 99 100。第一次拿走所有的奇數字置上的骨牌,第二次再從剩餘的骨牌中拿走所有奇數字置上的骨牌,依次類推,請問最後剩下的一張骨牌的編號是多少 a.48 b.50 c.52 d.64 正確答案 d.答對了嗎?答對了嗎?答對了嗎?第一次拿走...

多公尺諾骨牌

現有n塊 多公尺諾骨牌 s1,s2,s3,sn水平放成一排,每次骨牌si包含左右兩個部分,每個部分賦予乙個非負整數值,如下圖所示為包含6塊骨牌的序列.骨牌可做180度旋轉,使得原來在左邊的值變到右邊,而原來右邊的值移到左邊,假設不論si如何旋轉,l i 總是儲存si左邊的值,r i 總是儲存si右邊...

多公尺諾骨牌

在課堂上,我們分析了棋盤覆蓋問題,同學們也看了我的程式執行的情況,今天我們來看一下另外乙個覆蓋問題。今天的問題是這樣的 用n個2x1的矩形 這種矩形我們以後稱之為骨牌或多公尺諾 覆蓋2xn的棋盤,有多少種不同的覆蓋法?input 本問題有多組測試資料,對於每一組測試資料,輸入只有一行n 意義如上所述...