题目链接 题意:给出一张n * m的地图,其中 有的地方能放大炮,有的地方不能,大炮与上下左右两个单位范围内会相互攻击,问最多能放几个大炮 能放大炮为1不能放大炮为0,把每一行看做一个状态,要除去同一行与前面两个相邻的情况,然后在除去与上面两行相邻的情况,因为涉及前面两行所以多设一维状态 dp[i][j][k]表示 第 i 行 状态为k时,第i - 1行状态为j, 那么dp[i][j][k] = max ( dp[i][j][k], dp[i - 1][t][j] + num[k]): num[…