本地#4可过,洛谷上WA,求助
  • 板块P1767 家族
  • 楼主wuhupai
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/14 09:56
  • 上次更新2024/1/14 12:16:29
查看原帖
本地#4可过,洛谷上WA,求助
544310
wuhupai楼主2024/1/14 09:56

寄录

#include<bits/stdc++.h>
using namespace std;
int n,tot=0;
char a[105][205];
bool vis[105][205];
int dx[5]={0,1,-1,0,0};
int dy[5]={0,0,0,1,-1};
string x;
void dfs(int x,int y){
	vis[x][y]=true;
	for(int i=1;i<=4;i++){
		int tx=x+dx[i],ty=y+dy[i];
		if(a[tx][ty]=='1'&&vis[tx][ty]==false){
			dfs(tx,ty);
		}
	}
}
int main(){
	cin>>n;
	for(int i=0;i<=101;i++){
		for(int j=0;j<=201;j++){
			a[i][j]='*';
		}
	}
	getline(cin,x);
	for(int i=1;i<=n;i++){
		getline(cin,x);
		int len=x.size();
		for(int j=0;j<len;j++){
			if(x[j]==' '||x[j]=='*') a[i][j+1]='*';
			else a[i][j+1]='1';
		}
	}
	for(int i=1;i<=100;i++){
		for(int j=1;j<=200;j++){
			if(a[i][j]!='*'&&vis[i][j]==false){
				tot++;
				dfs(i,j);
			}
		}
	}
	cout<<tot<<endl;
	
	return 0;
	
}
2024/1/14 09:56
加载中...