题意:求图中最大的连通*的个数。
最近期末没刷题,这么水的题竟然跪了两发。。
#include<iostream> #include<cmath> #include<cstring> #include<string> #include<cstdio> #include<algorithm> using namespace std; char pic[1050][150]; int judge[1050][150]; int n, m; int ans, num; void dfs(int a, int b){ if(pic[a][b] == '.' || judge[a][b] == 1 || a <0 || b<0 || a >=m || b >=n) return; judge[a][b] = 1; num++; ans = max(ans, num); dfs(a-1, b); dfs(a+1, b); dfs(a, b+1); dfs(a, b-1); } int main(){ //freopen("a.txt", "r", stdin); while(scanf("%d %d", &n, &m) != EOF){ for(int i = 0; i < m; i++) scanf("%s", pic[i]); ans = 0; memset(judge, 0, sizeof(judge)); for(int i = 0; i < m; i++) for(int j = 0; j < n; j++){ num = 0; dfs(i, j); } cout << ans << endl; } return 0; }