poj 1185 炮兵陣地

2022-05-07 04:06:13 字數 1113 閱讀 4395

題意:

中文題意,略。

思路:一支炮兵部隊可以攻擊的範圍是兩格,所以當前行的狀態只和前兩行的狀態有關。

所以就列舉當前行,前一行和前兩行的狀態,如果用二進位制列舉,2^m的三次方,m最大為10,鐵定tle。

其實狀態並沒有想的那麼多,因為隔兩格才可以放乙個,所以其實真的有效的狀態不會超過100個。

100的三次方就可以接受。

另外,為了節省時間以及方便處理,那麼可以將輸入的狀態壓縮為2進製。

還有就是,答案最後再找吧。。。

**:

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;

6const

int n = 200;7

int dp[105

][n][n];

8int num[1

<<12];9

char mp[105

][n];

10int mmp[105

];11 vectorg;

12int

n,m;

13int cal(int

x)14

21return

cnt;22}

23bool judge(int

x)24

29int

main()

3044}45

for (int i = 0;i <(1

<)

4650

int ans = 0;51

for (int i = 0;i < g.size();i++)

5256

for (int i = 0;i < g.size();i++)

5765}66

for (int i = 0;i < n - 2;i++)

6781}82

}83}84

for (int i = 0;i < g.size();i++)

8593

}94 printf("

%d\n

",ans);95}

96return0;

97 }

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...