JZOJ4743 積木 狀壓dp

2021-09-12 07:15:26 字數 1185 閱讀 8504

顯然是狀壓dpdp

dp。設f[s

][i]

[1..3

]f[s][i][1..3]

f[s][i

][1.

.3]表示使用的積木集合是s

ss,最後使用的是積木i

ii,是以長/寬/高維度往上的最高值。

列舉s

ss,再列舉最近放置的積木i

ii和接下來要放置的積木j

jj。然後再列舉使用哪一維往上搭。轉移方程過於顯然了吧。。。

也可以不列舉哪一維,直接9個ifif

if時間複雜度o(2

n×n2

)o(2^n\times n^2)

o(2n×n

2)

#include

#include

using

namespace std;

const

int n=16;

const

int maxn=(1

<<15)

;int n,a[n]

,b[n]

,h[n]

,f[maxn]

[n][4]

,ans;

intmain()

int ms=

1<

for(

int s=

1;s)for

(int i=

1;i<=n;i++)if

((s&(1

<

)==0)

for(

int j=

1;j<=n;j++)if

(i!=j&&

(s&(

1<

))for(

int s=

0;s)for

(int i=

1;i<=n;i++

)for

(int j=

1;j<=

3;j++

) ans=

max(ans,f[s]

[i][j]);

printf

("%d"

,ans)

;return0;

}

狀壓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 看著妥妥超時,但是裡面合法狀態很少 依舊可以過 在此,...

jzoj 1266 玉公尺田(狀壓dp)

description 農民 john 購買了一處肥沃的矩形牧場,分成m n 1 m 12 1 n 12 個格仔。他想在那裡的一些格仔中種植美味的玉公尺。遺憾的是,有些格仔區域的土地是貧瘠的,不能耕種。精明的 fj 知道奶牛們進食時不喜歡和別的牛相鄰,所以一旦在乙個格仔中種植玉公尺,那麼他就不會在相...

狀壓DP 最優配對問題(jzoj 3420)

在平面上有n個點,現在要把他們拼成n 2對,拼接兩個點的代價是他們的平面距離,現在問代價總和最小是多少 4 8730 9323 3374 3929 7890 6727 1257 468920366.602 n 20 用dfs每一次選1個數和當前數字匹配,如果當前數字選過了,就進入下一層 includ...