| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
第一次完全自己的DFS 过了 ,庆贺庆贺 贴一下代码。。。#include <iostream>
using namespace std;
char map[1005][82];
bool visited[1005][82];
int tmp[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int count;
int w,h;
void dfs(int a,int b)
{
//if(visited[a][b]==true) return ; //多余啊,导致调了半天不知道哪错啦!!!
int i,a1,b1;
for(i=0;i<4;i++)
{
a1=a+tmp[i][0];
b1=b+tmp[i][1];
if(a1>=0 && b1>=0 && a1<h && b1<w && visited[a1][b1]==false && map[a1][b1]=='*')
{
count++;
visited[a1][b1]=true;
dfs(a1,b1);
}
}
return ;
}
int main()
{
int i,j;
int max;
char st[9];
cin>>w>>h;
cin.getline(st,9);
for(i=0;i<h;i++)
cin.getline(map[i],82);
// for(i=0;i<h;i++)
// cout<<map[i]<<endl;
memset(visited,false, sizeof(visited));
max=0;
for(i=0;i<h;i++)
for(j=0;j<w;j++)
{
if(visited[i][j]==false && map[i][j]=='*')
{
count=1;
visited[i][j]=true;
dfs(i,j);
if(max<count) max=count;
}
}
cout<<max<<endl;
// system("pause");
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator