本文主要是介绍UVA 572,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*图连通性判断 , 只需用 DFS, 水 */
#include <stdio.h>
#include <string.h>
int map[200][200];
int vis[200][200];
char temp;
void dfs( int x, int y )
{if( !map[x][y] || vis[x][y] ) return;vis[x][y] = 1;dfs(x-1, y-1); dfs(x-1,y); dfs(x-1, y+1);dfs(x, y-1); dfs(x, y+1);dfs(x+1, y-1); dfs(x+1, y); dfs(x+1,y+1);}
int main()
{int m, n, i, j, cout;while( scanf( "%d%d", &m, &n ) && m && n ){getchar();cout = 0;memset( map, 0, sizeof(map) );memset( vis, 0, sizeof(vis) );for( i = 1; i <= m; i++ ){for( j = 1; j <= n; j++ ){scanf( "%c", &temp );if( temp == '@' )map[i][j] = 1;}getchar();}for( i = 1; i <= m; i++ )for( j = 1; j <= n; j++ )if( !vis[i][j] && map[i][j] ){cout++;dfs( i, j );}printf( "%d\n", cout );}return 0;
}
这篇关于UVA 572的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!