您当前的位置: 首页 > 

不牌不改

暂无认证

  • 0浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

DFS 二维空间统计四连通区域个数,并返回每个连通区域中的节点个数

不牌不改 发布时间:2022-03-10 17:51:32 ,浏览量:0

#include
using namespace std;

// dfs 二维空间统计四连通区域个数,并返回每个连通区域中的节点个数 

int n = 3, m = 3, ans;
int vis[100], mp[100];

int dfs (int x, int y) { // 这个函数必须要传入行号和列号,不能传入降维至一维的编号 
	if (x = n || y = m) return 0;
	if (vis[x*m+y]) return 0; // 这个是表示深搜过的点不去搜索了
	if (!mp[x*m+y]) return 0;
	vis[x*m+y] = 1;
	mp[x*m+y] = 0; // 遍历过的地方要去掉标记,要不然主函数中后面的循环还以该点为起点深搜。
	return 1 + dfs (x - 1, y) + dfs (x + 1, y) + dfs (x, y - 1) + dfs (x, y + 1);
	
}

int main()
{
	mp[1*m+1] = mp[0*m+1] = mp[0*m+0] = 1;
	mp[2*m+2] = 1;
	for (int i = 0;i             
关注
打赏
1662186765
查看更多评论
0.9883s