lintcode 柵欄染色

2021-08-10 03:04:37 字數 911 閱讀 4734

我們有乙個柵欄,它有n個柱子,現在要給柱子染色,有k種顏色可以染。

必須保證不存在超過2個相鄰的柱子顏色相同,求有多少種染色方案。

注意事項

nk都是非負整數

您在真實的面試中是否遇到過這個題?

yes

樣例n= 3,k= 2, return6

post 1,   post 2, post 3

way1 0 0 1

way2 0 1 0

way3 0 1 1

way4 1 0 0

way5 1 0 1

way6 1 1 0

這應該也是典型的動態規劃問題吧,我們從最後的情況開始討論。可以分為兩種情況:1.最後兩根柱子顏色相同2.

最後兩根柱子顏色不同

對於第一種情況,最後兩根柱子顏色相同,不能三根柱子顏色連續相同,所以最後兩根柱子的顏色選擇有k-1種.

對於第二種情況,最後兩根柱子顏色不同,那麼最後一根柱子的顏色有k-1種選擇方案.

class solution 

return dp;

}};

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...

514 柵欄染色

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 如果是不允許三根柱子相鄰...