50分摆烂
查看原帖
50分摆烂
735141
hiGh_sPeEd楼主2023/8/31 14:29
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,dir[4][2]={{1,0},{0,-1},{0,1},{0,-1}},ans=0;
bool vis[1001][1001];
char asd[1001][1001];

void dfs(ll nowx, ll nowy){
	vis[nowx][nowy]=1;
	for(ll i=0;i<4;i++){
		ll xx=nowx+dir[i][0],yy=nowy+dir[i][1];
		if(xx<1||yy<1||xx>n||yy>m||vis[xx][yy]==1||asd[xx][yy]=='0')continue;
		else{
			vis[xx][yy]=1;
			dfs(xx,yy);
		}
	}
}

int main(){
	cin>>n>>m;
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=m;j++){
			cin>>asd[i][j];
		}
	}
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=m;j++){
			if(asd[i][j]!='0' && vis[i][j]==0){
				dfs(i,j);
				ans+=1;
			}
		}
	}
	cout<<ans;
	return 0;
} 

啊啊啊啊不知道哪里错了啊

2023/8/31 14:29
加载中...