摘要:
原题传送:http://poj.org/problem?id=1185 经典状态压缩动态规划。 由于每个炮兵的位置影响范围为2的行和列,导致状态很难表示,但我们注意到最多有10列,我们可以先对行进行状态压缩,由于m <= 10,则每一行最多只有60种状态(这些状态暴力枚举去除不符合的即可)。由于每个炮兵对其所在列有大小为2的竖直方向的影响范围,那么,显然,我们得开一个三维dp数组,分析得到转移方程为: dp[i, k1, k2] = MAX{dp[i-1, k2, k3] + b[k1]} 这条转移方程的dp[i, k1, k2]表示第i行选择第 k1 种状态,第i-1行选择第 k... 阅读全文