欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

AOJ 0118: Property Distribution (简单DFS)

发布时间:2024/4/19 编程问答 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 AOJ 0118: Property Distribution (简单DFS) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0118

题意:给定一个矩阵,同类字符相连的为一个块,问总共有几个块。

输入:h,w(行和列)0 <= h <= 100,0 <= w <= 100

   矩阵

   输入包含多组用例,以0,0结束。

输出:块数。

代码:

#include <iostream> using namespace std; typedef long long ll; #define INF 2147483647int w,h; char a[102][102]; int dir[4][2] = {-1,0,1,0,0,-1,0,1}; int ans = 0;void dfs(int x,int y,char s){if(x < 0 || x >= h || y < 0 || y >= w || a[x][y] != s) return;char t = a[x][y];a[x][y] = 'o';for(int i = 0;i < 4; i++){dfs(x+dir[i][0], y+dir[i][1], t);} }int main(){while(cin >> h >> w){if(w == 0 && h == 0) break;ans = 0;int sx,sy;for(int i = 0;i < h; i++){for(int j = 0;j < w; j++){cin >> a[i][j];}}for(int i = 0;i < h; i++){for(int j = 0;j < w; j++){if(a[i][j] != 'o'){ans++;dfs(i,j,a[i][j]);}}}cout << ans << endl;}return 0; } 与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的AOJ 0118: Property Distribution (简单DFS)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。