今天给大家献上“C”级题:50095106扔核弹(XDC,你懂的)!!
|
||||||||||||||
|
好的,以上就是50095106扔核弹(XDC,你懂的)的题目要求,现在献上代码!!!当当当!!!
#include<iostream>
using namespace std;
char a[][];
int maxn=-,book[][],n,m,mx,my;
int res(int i,int j)
{
int sum=,l,b;
l=i;
b=j;
while(a[l][b]!='#')
{
if(a[l][b]=='G') sum++;
b++;
}
l=i;
b=j;
while(a[l][b]!='#')
{
if(a[l][b]=='G') sum++;
b--;
}
l=i;
b=j;
while(a[l][b]!='#')
{
if(a[l][b]=='G') sum++;
l++;
}
l=i;
b=j;
while(a[l][b]!='#')
{
if(a[l][b]=='G') sum++;
l--;
}
return sum;
}
void dfs(int x,int y)
{
int next[][]={{,},
{,},
{,-},
{-,}};
int sum,tx,ty,k;
sum=res(x,y);
if(sum>maxn)
{
maxn=sum;
mx=x;
my=y;
}
for(k=;k<=;k++)
{
tx=x+next[k][];
ty=y+next[k][];
if(tx< || tx>n- || ty< || ty>m-) continue;
if(a[tx][ty]=='.' && book[tx][ty]==)
{
book[tx][ty]=;
dfs(tx,ty);
}
}
return ;
}
int main()
{
int i,startx=,starty=;
cin>>n>>m;
for(int i=;i<n;i++)
for(int j=;j<m;j++)
cin>>a[i][j];
book[startx][starty]=;
maxn=res(startx,starty);
mx=;
my=;
dfs(,);
cout<<"将导弹投送到("<<mx<<","<<my<<"),最多可以消灭"<<maxn<<"个敌人。";
}
50095106扔核弹(XDC,你懂的)!!!!!