poj 3051 Satellite Photographs 基础DFS

来源:互联网 发布:json怎么解析 编辑:程序博客网 时间:2024/05/16 00:25
#include<iostream>using namespace std;char map[1005][83],visited[1005][83];int w,h,ans;int dirx[4] = {1,-1,0,0};int diry[4] = {0,0,1,-1};bool judge(int a,int b){if(a >= 0&&a < h&&b >= 0&&b < w)return true;return false;}void dfs(int x,int y){ans++;  //从满足条件的点向其他点扩展visited[x][y] = 1;for(int k = 0;k < 4;k++){int nextx = x + dirx[k];int nexty = y + diry[k];if(judge(nextx,nexty)&&visited[nextx][nexty] == 0&&map[nextx][nexty] == '*'){dfs(nextx,nexty);}}}int main(){cin>>w>>h;int i,j;for(i = 0;i < h;i++)for(j = 0;j < w;j++)cin>>map[i][j];int max = INT_MIN;for(i = 0;i < h;i++)for(j = 0;j < w;j++){if(map[i][j] == '*'&&visited[i][j] == 0){ans = 0;dfs(i,j);if(max < ans)max = ans;}}cout<<max<<endl;return 0;}

原创粉丝点击