TLE求助大佬!
查看原帖
TLE求助大佬!
253453
1901吴昊楼主2021/10/15 13:13
#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
char a[120][120];
int b[120][120],c[120][120];
int d[4][2]={{0,1},{0,-1},{-1,0},{1,0}};

void dfs(int x,int y){
	if(a[x][y]=='0'||b[x][y]==1)
	{
		return;
	}
	else
	{
		if(x>=1&&x<=n&y>=1&&y<=m)
		{
			for(int i=0;i<4;i++)
			{
				b[x][y]=1;
				c[x][y]=1;
				dfs(x+d[i][0],y+d[i][1]);
				b[x][y]=0;
			}
		}
		else
		{
			return;
		}
	}
}

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

测试点6 TLE了,HELP!

2021/10/15 13:13
加载中...