狀壓dp(基礎)

2022-05-09 08:36:14 字數 702 閱讀 2813

➢ 題目大意:

有乙個m*n的矩陣

,每乙個方格就是一塊牧場

,每乙個牧場適合種玉公尺用1表示

,不適合用0表示,放牧時相鄰的兩塊玉公尺地只能有一頭牛

,求有多少種放牧方案

,一頭牛也不放也是一種

➢ 資料範圍: (1

≤ m

≤ 12; 1

≤ n

≤ 12)

➢ 輸入:

第一行

n,m,

接下來是

m*n的矩陣

,1表示適合種玉公尺

,0表示不適合

➢ 輸出:一行,

放牧的方案數

mod 1e8.

➢ hint:放牧1

頭牛有4

種方案,2

頭牛有3種,3

頭牛1種,

一頭牛不放1種

=4+3+1+1=9

輸入樣例

2 31 1 1

0 1 0

輸出樣例

這是一道很基礎的狀壓dp,通過列舉每一行的狀態和上一行的狀態,有上一行推知此行即可,

列舉狀態時注意限制

➢ 假設f[i][j]

表示前i

行且第i

行的狀態為

j時合法放牧方案數。

➢ 轉移方程:f[i][j]+=f[i-1][k],((j & k)==0)

狀壓dp基礎習題

題解非常基礎的一道狀壓dp 我們用二進位制來表示每一行取數情況,1 11表示取,0 00表示不取 很容易得到狀態轉移方程 f i j max f i j f i 1 k a ns i j f i j max f i j f i 1 k ans i j f i j ma x f i j f i 1 k...

狀壓dp 玉公尺田 狀壓dp

相關 強相關 327.玉公尺田 狀壓dp 小國王 狀壓dp 是井字形,本題是十字形。思路 狀態計算 時間複雜度 n 2 n 2n o n 22n 12 2 24n 2 n 2 n o n2 12 2 n 2n 2 n o n22n 12 224 看著妥妥超時,但是裡面合法狀態很少 依舊可以過 在此,...

狀壓dp小記

鋪磚 題意 現有nm的一塊地板,需要用12的磚塊去鋪滿,中間不能留有空隙。問這樣方案有多少種 include using namespace std typedef long long ll const int maxn 1 11 int n,m,state ll dp 15 maxn s1表示本行...