歌名 - 歌手
0:00

    【炮兵阵地】题解

    题目##

    题目描述

    司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:![](data:image/JPG;base64,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) 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。   现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。

    输入

    文件的第一行包含两个由空格分割开的正整数,分别表示N和M;接下来的N行,每一行含有连续的M个字符(‘P’或者‘H’),中间没有空格。按顺序表示地图中每一行的数据。 N≤100;M≤10。

    输出

    文件仅在第一行包含一个整数K,表示最多能摆放的炮兵部队的数量。

    样例输入

    5 4
    PHPP
    PPHH
    PPPP
    PHPP
    PHHP
    

    样例输出

    6
    

    分析

    状态压缩dp:
    因为M<=10,所以可以以每一行的状态设置dp方程。而且,当在某个位置放炮兵时,它上下左右的两个位置也会被这个位置影响,所以每一行的状态需要由上两行转移,即dp方程为f[i][j][k];i指当前做到第i行,j指第i行的状态,k指第i-1行的状态;当在第i行时,我们可以枚举第i-2行的状态、第i-1行的状态和第i行的状态,分别为j、k和l,并设dd[l]为l状态放了炮兵的个数。显然dp方程为:
    f[i][k][l]=max(f[i][k][l],f[i-1][j][k]+dd[l])
    但是,如果直接dp,时间复杂度为O(n*2^30),一定会超时。所以要先预处理合法的炮兵摆放位置放在d数组中。

    for(i=1;i<=n;i++)
    		for(j=1;j<=tot;j++)
    			if(i==1 || (d[j]|a[i-2])==d[j] || (d[j]|a[i-2])==a[i-2])//a数组为每一行地图的状态,1为平原(即P),0为山地(即H)
    			for(k=1;k<=tot;k++)
    			    if(((d[k]|a[i-1])==d[k] || (d[k]|a[i-1])==a[i-1]) && (d[j]|d[k])==d[j]+d[k])
    			        for(l=1;l<=tot;l++)
    			            if((d[l]|a[i])==a[i] && (d[l]|d[j]|d[k])==d[l]+d[j]+d[k])
    			            {
    			            	f[i][d[k]][d[l]]=max(f[i][d[k]][d[l]],f[i-1][d[j]][d[k]]+dd[l]);
    			            	if(i==n)
    			            	{
    			            		if(f[i][d[k]][d[l]]>ans) ans=f[i][d[k]][d[l]];
    							}
    						}
    
    posted @ 2018-04-29 20:15  无尽的蓝黄  阅读(3341)  评论(0)    收藏  举报