讨论 / 用cin
940254533 2017-09-01 06:37:06
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

int n,m,f[50+5][50+5],dir[][2]={{1,0},{-1,0},{0,1},{0,-1}},ans=-1;

char map[50+5][50+5];

bool vis[50+5][50+5];

void dfs(int x,int y)

{

f[x][y]++;

for(int i=0;i<4;i++)

{

int xx,yy;

xx=x+dir[i][0],yy=y+dir[i][1];

if(!vis[xx][yy] && (map[xx][yy]!='#' )&& xx>=0 && xx<n && yy>=0 && yy<m)

{

vis[xx][yy]=true;

dfs(xx,yy);

}

}

}

int main()

{

memset(vis,0,sizeof(vis));

memset(f,0,sizeof(f));

scanf("%d%d%",&n,&m);

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

cin>>map[i][j];//请用cin,scanf(),getchar()等 30 40 分,MD改了一晚上 这个题

}

//getchar();

}

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

{

memset(vis,0,sizeof(vis));

if(map[i][j]=='R')

vis[i][j]=true,

dfs(i,j);

}

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

ans=max(ans,f[i][j]);

printf("%d\n",ans);

/*for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

if(j==m-1)

printf("%c\n",map[i][j]);

else

printf("%c",map[i][j]);*/

return 0;

}

查看更多回复
提交回复