HDU4539 狀態壓縮DP

2022-04-21 11:28:22 字數 1124 閱讀 5256

1/*2

題意:n行m列的矩陣,1表示可以放東西,0表示不可以。曼哈頓距離為2的兩個位置最多只能有乙個位置放東西。

3問最多放多少個東西。4*/

5 #include6 #include

7 #include8 #include9 #include10 #include11 #include12 #include13 #include14

using

namespace

std;

15const

int maxn = 105;16

const

int maxm = 12;17

const

int n = 170;18

intmat[ maxn ];

19int

dp[ maxn ][ n ][ n ];

20int

state[ n ];

21int

ones_state[ n ];

22int count_ones( int

x )29

return

cnt;

30}

31int init( int n,int

m )42}43

//printf("cnt=%d\n",cnt);最多169種狀態!!

44return

cnt;45}

46void dp( int cnt,int n,int

m )//

初始化52

for( int i=1;i)62}

63}64}

65}66}

67}68int

main()80}

81}82dp( cnt,n,m );

83int ans = 0;84

for( int i=0;i)

85for( int j=0;j)

86 ans = max( ans,dp[n-1

][i][j]);

87 printf("

%d\n

",ans);88}

89return0;

90 }

view code

HDU 4539 鄭廠長系列故事 排兵布陣

其實主要修改的只有2個地方,因為這個地所要求的是曼哈頓距離為2,所以在轉移上一層狀態的時候應該判斷是否左右相鄰。同時上層與上上層之間也同樣需要做這樣乙個判斷。include include includeusing namespace std const int maxn 202 int dp ma...

Hdu 3811 狀態壓縮 DP

題意 給定數n n 17 求乙個n位數,每位可選1 n中的乙個,且每位不同,並且滿足給定的條件,求方案數。給定條件為m個 x y 表示第x位為y的滿足要求。滿足m中的乙個條件即正確。演算法 dp 狀態壓縮 分析 首先不考慮條件的總方案數為n 我們先算不滿足條件的方案,因為m個條件之間是或者 關係,有...

hdu 1074 狀態壓縮dp

題目描述 有 n 門課程的作業,每門都有完成期限d,與完成所需時間c,若超過期限,1天扣1分。問完成這n門作業至少要扣多少分,並輸出扣分最少的做作業順序。思路 dp i 記錄完成狀態為i的情況下的資訊。完成所需時間,上乙個狀態,最小扣分 狀態方程 dp i min dp j cost j,i 從j狀...