求助,看不懂为什么
查看原帖
求助,看不懂为什么
1797795
SKY_SHY楼主2025/7/13 10:26

不会写抄的题解但是看不懂,这篇(https://www.luogu.com.cn/article/hnrxc43a) 注释了位置,大佬995😭

#include <bits/stdc++.h>
using namespace std;
//vector<vector<int>> shao;
int shao[105][105];//<---------------这里
int ans;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};
int n,m;
void dfs(int x,int y){
	shao[x][y] = 0;//<------------------这里
	for(int i = 0 ; i < 4 ; ++ i){
		x += dx[i];
		y += dy[i];
		if(x > 0 && y > 0 && x <= n && y <= m && shao[x][y] != 0){
			dfs(x,y);
		}
		x -= dx[i];
		y -= dy[i];
	}
}

int main(){
	
	
	cin >> n >> m;
	for(int i = 1 ; i <= n ; ++ i){
		for(int j = 1 ; j <= m ; ++ j){
			scanf("%1d",&shao[i][j]);
		}
	}
	for(int i = 1 ; i <= n ; ++ i){
		for(int j = 1 ; j <= m ; ++ j){
			if(shao[i][j] == 0){//<---------------这里
				continue;
			}
			dfs(i,j);
			ans++;
		}
	}
	cout << ans;
	return 0;
}
2025/7/13 10:26
加载中...