ACM解题炮兵阵地

上传人:xuey****n398 文档编号:244670901 上传时间:2024-10-05 格式:PPT 页数:14 大小:227.49KB
返回 下载 相关 举报
ACM解题炮兵阵地_第1页
第1页 / 共14页
ACM解题炮兵阵地_第2页
第2页 / 共14页
ACM解题炮兵阵地_第3页
第3页 / 共14页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1185 炮兵阵地,00008100,李瑞超,题目简介,司令部的将军们打算在,N*M,的网格地图上部署他们的炮兵部队。一个,N*M,的地图由,N,行,M,列组成,地图的每一格可能是山地(用,H,表示),也可能是平原(用,P,表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:,题目简介(续一),题目简介(续二),如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。,输入要求,第一行包含两个由空格分割开的正整数,分别表示N和M;接下来的N行,每一行含有连续的M个字符(P或者H),中间没有空格。按顺序表示地图中每一行的数据。N=100;M=10。,输出要求,仅一行,包含一个整数K,表示最多能摆放的炮兵部队的数量。,Sample,Input,5 4,P,H P,P,P,P,H H,P P,P,P,P,H P P,P H H,P,Output,6,题目分析,MAX MMAX N,由此自然想到逐行向下扫描,考虑到第,i,行大炮的放置对第,i,3,行的大炮没有任何影响,这就决定了我们可以用有限的状态数来描述某一行的所有可能情况,因此动态规划成为选择。决定了基本算法,下面选择状态。,状态处理,如果我们采用3进制方式来表示一行的所有状态,那么会有每行会有3M个状态,加上要重复扫描N次。因此在最坏情况下(M10,N100,所有地点都是平原),会扫描到所有的310*100个状态,加上每个状态会被多次扫描到,因此不十分可取。,具体选择,分析一个列为,10,(,M,的最大值)的表。注意到一个全为,P,的空列上一共也只有,60,种合法的,Cannon,放置方法。具体对一个列数为,10,的,PH,表而言,对每一列也只有前两列对其产生影响,因此我们可以用一个二维数组,cal lm lm,来记录其上一行处于第,x,种状态,该行自身出于第,y,种状态时,从首行扫描到该行时所能存放的最多,cannon,数。其中,lm,是列数为,M,时一列的所有可能合法放置方法,,x,、,y,在,0,到,lm,1,之间。,基本数据结构,Pre6060,now6060,对新行进行扫描时,for(i=0;ilm;i+)for(j=0;jlm;j+),for(k=0;klm;k+),如果当前行,前一行,前二行分别是第,i,,,j,,,k,个状态,并且都能够相容。而,now j ipre k j+,第,i,个状态新增的,cannon,数。那么更新,now j i,。,算法加速,有很多,可以同时实现也可以分别实现。,可以预先判断出,2,种状态是否相容,这样循环扫描时可以直接剪枝。,可以预先判断出第,i,行和第,j,种状态是否相容。,自己定义某种快速映射去判断。,时空代价,时间代价,O(N*lm*lm*lm),空间代价,O(lm*lm),Thanks all!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!