手机版

POJ 1185 炮兵阵地

发布时间:2021-06-06   来源:未知    
字号:

POJ 解题报告

1185 炮兵阵地00008100 李瑞超

POJ 解题报告

题目简介司令部的将军们打算在N*M的网格地图上部署 司令部的将军们打算在N*M的网格地图上部署 他们的炮兵部队.一个N*M的地图由N 他们的炮兵部队.一个N*M的地图由N行M列组 成,地图的每一格可能是山地(用"H" 成,地图的每一格可能是山地(用"H" 表示), 也可能是平原(用"P"表示),如下图.在每一格 也可能是平原(用"P"表示),如下图.在每一格 平原地形上最多可以布置一支炮兵部队(山地上 不能够部署炮兵部队);一支炮兵部队在地图上 的攻击范围如图中黑色区域所示:

POJ 解题报告

题目简介(续一) 题目简介(续一)

POJ 解题报告

题目简介(续二) 题目简介(续二)如果在地图中的灰色所标识的平原上部署一支炮 兵部队,则图中的黑色的网格表示它能够攻击到 的区域:沿横向左右各两格,沿纵向上下各两格. 图上其它白色网格均攻击不到.从图上可见炮兵 的攻击范围不受地形的影响. 现在,将军们规划如何部署炮兵部队,在防止误 伤的前提下(保证任何两支炮兵部队之间不能互 相攻击,即任何一支炮兵部队都不在其他支炮兵 部队的攻击范围内),在整个地图区域内最多能 够摆放多少我军的炮兵部队.

POJ 解题报告

输入要求第一行包含两个由空格分割开的正整数, 分别表示N 分别表示N和M; 接下来的N行,每一行含有连续的M 接下来的N行,每一行含有连续的M个字符 ('P'或者'H'),中间没有空格.按顺序表示地 ('P'或者'H'),中间没有空格.按顺序表示地 图中每一行的数据.N 图中每一行的数据.N <= 100;M <= 10. 100; 10.

POJ 解题报告

输出要求仅一行,包含一个整数K 仅一行,包含一个整数K,表示最多能摆放 的炮兵部队的数量.

POJ 解题报告

SampleInput 54 PHPP PPHH PPPP PHPP PHHP Output 6

POJ 解题报告

题目分析MAX M<<MAX N 由此自然想到逐行向下扫描,考虑到第i 由此自然想到逐行向下扫描,考虑到第i行 大炮的放置对第i 大炮的放置对第i+3行的大炮没有任何影响, 这就决定了我们可以用有限的状态数来描 述某一行的所有可能情况,因此动态规划 成为选择.决定了基本算法,下面选择状 态.

POJ 解题报告

状态处理如果我们采用3 如果我们采用3进制方式来表示一行的所有 状态,那么会有每行会有3^M个状态,加上 状态,那么会有每行会有3^M个状态,加上 要重复扫描N次.因此在最坏情况下(M 要重复扫描N次.因此在最坏情况下(M= 10,N=100,所有地点都是平原),会扫 10, 100,所有地点都是平原),会扫 描到所有的3^10*100个状态,加上每个状 描到所有的3^10*100个状态,加上每个状 态会被多次扫描到,因此不十分可取.

POJ 解题报告

具体选择分析一个列为10( 分析一个列为10(M的最大值)的表.注意 到一个全为P的空列上一共也只有60种合法 到一个全为P的空列上一共也只有60种合法 的Cannon放置方法.具体对一个列数为10 Cann

on放置方法.具体对一个列数为10 的PH表而言,对每一列也只有前两列对其 PH表而言,对每一列也只有前两列对其 产生影响,因此我们可以用一个二维数组 cal [lm] [lm]来记录其上一行处于第x种状态, [lm]来记录其上一行处于第x 该行自身出于第y 该行自身出于第y种状态时,从首行扫描到 该行时所能存放的最多cannon数.其中lm是 该行时所能存放的最多cannon数.其中lm是 列数为M 列数为M时一列的所有可能合法放置方法, x,y在0到lm-1之间. lm-

POJ 解题报告

基本数据结构Pre[60][60],now[60][60] 对新行进行扫描时 for(i=0;i<lm;i++)for(j=0;j<lm;j++) for(k=0;k<lm;k++){ 如果当前行,前一行,前二行分别是第i 如果当前行,前一行,前二行分别是第i, j,k个状态,并且都能够相容.而now [j] 个状态,并且都能够相容.而now [i]<pre [k] [j]+第i个状态新增的cannon数. [j]+第 个状态新增的cannon数. 那么更新now [i]. 那么更新now [j] [i]. }

POJ 解题报告

算法加速有很多,可以同时实现也可以分别实现. 可以预先判断出2 可以预先判断出2种状态是否相容,这样循 环扫描时可以直接剪枝. 可以预先判断出第i行和第j 可以预先判断出第i行和第j种状态是否相容. 自己定义某种快速映射去判断.

POJ 解题报告

时空代价时间代价 O(N*lm*lm*lm) 空间代价 O(lm*lm)

POJ 解题报告

POJ 1185 炮兵阵地.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)