先来说说题目意思吧,如图,帮助小人找到一个放炸弹的坐标,使之一颗炸弹炸死最多的敌人。
我们用字符G表示敌人,#表示墙, . 表示可以走的路,特别说明下,那种一推就倒的墙,就把它看做路吧。
BFS:
#include<iostream>
using namespace std;
struct note
{
int x;//横坐标
int y;//纵坐标
};
struct note que[401];
int book[20][20];
int i,j,k,sum,maxs=0,mx,my,n,m,startx,starty,tx,ty;
int next[4][2]={
{0,1},
{1,0},
{0,-1},
{-1,0}};
char a[20][21];//用来存储地图
int getnum(int i,int j)
{
int sum,x,y;
sum=0;//记录可以消灭敌人的个数
//将坐标i,j复制到两个变量x,y中,保存初始坐标i,j;
x=i;
y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
x--;//继续向下
}
x=i;
y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
x++;//继续向下