514 柵欄染色

2021-07-29 16:45:06 字數 669 閱讀 6280

3.28

這個題自己的錯誤,廢了很多時間。

如果是單純地相鄰不許同色的話,應該就是這樣的

public static int numways1(int n, int k) 

if(k == 1 && n > 2)

int x = (int)math.pow(k-1, n-1);

return x*k+2*(n-1);

}

如果是不允許三根柱子相鄰的話應該是這樣的

public static int numways(int n, int k) 

if( n ==1)

if(k == 1 && n > 2)

if( n ==2)

// 我以為用這種遞迴的方法會超時呢

// 其實並沒有呢,哈哈

int x = numways(n-1, k);

int y = numways(n-2, k);

return (x+y)*(k-1);

/***

這種非遞迴的方法應該是會更好一些的

int n2 = k * k;

for (int i = 2; i < n; i++)

return n2;

*/}

514 柵欄染色

從物理學到計算機,再到硬體,再到人工智慧!藍橋杯備賽 lintcode上刷的第三題 我們有乙個柵欄,它有n個柱子,現在要給柱子染色,有k種顏色可以染。必須保證不存在超過2個相鄰的柱子顏色相同,求有多少種染色方案。最開始,我想用動態陣列儲存每一種方案的第i根柱子的顏色。後來發現這樣資料量太大,而且記錄...

LintCode 柵欄染色

lintcode 柵欄染色 lintcode表述有問題,原文是 必須保證任意兩個相鄰的柱子顏色不同 應該表述為 至多有兩根相鄰的柱子具有相同的顏色 此題使用動態規劃,狀態轉移方程為f i f i 1 k 1 f i 2 k 1 顯然f 0 k,f 1 k k 方法一 class solution p...

LintCode 柵欄染色

題目描述 我們有乙個柵欄,它有n個柱子,現在要給柱子染色,有k種顏色可以染。必須保證最多只有兩個相鄰的柱子顏色相同,求有多少種染色方案。樣例 n 3,k 2,return 6 post 1,post 2,post 3 way1 0 0 1 way2 0 1 0 way3 0 1 1 way4 1 0...