1/*2view code題意: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 }
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狀...