POJ 1185 炮兵陣地 狀態壓縮DP

2021-06-21 22:25:45 字數 869 閱讀 9231

狀壓dp第二題。。摸索中。。今天喝多了,就寫了一題,墮落了。。明天奮起~

狀態轉移方程:dp[i][j][k] = max(dp[i][j][k], dp[i - 1][k][l] + sum[j]);,dp[i][j][k] 表示第i行的狀態為j,第i - 1行的狀態為k時前i行最大放置炮兵數。

#include #include #include using namespace std;

const int max_n = 100 + 10;

const int max_m = 70;

int _map[max_n], dp[max_n][max_m][max_m], state[max_m], sum[max_m];

int n, m, cnt;

bool is_ok(int s)

int getsum(int s)

return ans;

}void getstate()

}}int main()

}getstate();

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

if(!(state[i] & _map[0]))

dp[0][i][0] = sum[i];

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

}}}}

int res = 0;

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

for(int j = 0; j < cnt; j++)

res = max(dp[n - 1][i][j], res);

printf("%d\n", res);

return 0;

}

poj1185 炮兵陣地(狀態壓縮)

炮兵陣地 time limit 2000ms memory limit 65536k total submissions 15261 accepted 5743 description 司令部的將軍們打算在n m的網格地圖上部署他們的炮兵部隊。乙個n m的地圖由n行m列組成,地圖的每一格可能是山地 ...

poj 1185炮兵陣地(狀態壓縮)

炮兵陣地 time limit 2000ms memory limit 65536k total submissions 32180 accepted 12437 description 司令部的將軍們打算在n m的網格地圖上部署他們的炮兵部隊。乙個n m的地圖由n行m列組成,地圖的每一格可能是山地...

POJ1185 炮兵陣地 狀態壓縮DP

感覺和3254很像,不過這次的間隔變成兩格,當前行的狀態與上兩行的狀態有關。狀態轉移方程 dp k q i max dp k q i dp q j i num k num k 表示狀態k的炮兵數量 dp k q i 表示當前第i行為狀態k上一行的狀態為q的炮兵數量總數。炮兵陣地 time limit...