POJ 1185 炮兵陣地

2021-08-28 12:14:19 字數 915 閱讀 6984

思路:狀態壓縮dp,對每行的狀態進行列舉,由於乙個炮兵影響相鄰兩行,因此用 dp[i][j][k]來儲存 第i行的狀態為j,第 i-1行狀態為k時的最大個數。

code :

#include#includeusing namespace std;

const int max_n=105;

const int max_m=75;

int n,m;

int d[max_n],p[max_m],s[max_m];

int dp[max_n][max_m][max_m];

int find(int x)

return res;

}bool judge1(int x)

bool judge2(int a,int b)

int main()

int ss=0,mm=(1<

for(int i=0;i<=mm;++i)

if(!judge1(i))

for(int i=0;i

if(!judge2(d[1],p[i])) dp[1][i][0]=s[i];

for(int i=0;i

if(!judge2(d[2],p[i]))

}for(int i=3;i<=n;++i)

for(int j=0;j

if(!judge2(d[i],p[j]))}}

int ans=0;

for(int i=0;i

for(int j=0;j

ans=max(ans,dp[n][i][j]);

cout<

return 0;

}

poj 1185 炮兵陣地

題目鏈結 題意 在n m的網格地圖上部署炮兵部隊。地圖的每一格可能是山地 用 h 表示 也可能是平原 用 p 表示 如下圖。在每一格平原地形上最多可以布置一支炮兵部隊 山地上不能夠部署炮兵部隊 一支炮兵部隊在地圖上的攻擊範圍如圖中黑色區域所示 如果在地圖中的灰色所標識的平原上部署一支炮兵部隊,則圖中...

POJ 1185 炮兵陣地

include include include include include include include include include include include include include include define sz v int v size define rep i,n ...

POJ 1185 炮兵陣地

狀態壓縮專題第一題,自己想了很久,最終還是以別人的 為模板寫的。dp共三維,一維是行數,一維是前一行狀態,一維是前第二行狀態。ps 直接開三維太大,用s陣列記錄下所有可能出現的情況,大大減少時間和空間。include include include includeusing namespace st...