c++蒟蒻bfs求助
查看原帖
c++蒟蒻bfs求助
169606
Jason12楼主2022/2/12 11:31

全TLE代码:

#include <bits/stdc++.h>]
  using namespace std;
int c[4]={-1,0,1,0},d[4]={0,1,0,-1},mp[100][100],s,n,m;
char ch[100];
void xy(int p,int q)
{
	int x,y,u,v,k,t[1000][3],i;
	s++;
	mp[p][q]=0;
	u=0;
	v=1;
	t[1][1]=p;
	t[1][2]=q;
	do
	{
		u++;
		for (i=0;i<4;k++)
		{
			x=t[u][1]+c[i];
			y=t[u][2]+d[i];
			if ((x>=0) && (x<n) && (y>=0) && (y<n) && (mp[x][y]))
			{
				v++;
				t[v][1]=x;
				t[v][2]=y;
				mp[x][y]=0;
			}
		}
	}while (u<v);
}
int main()
{
	scanf("%d%d\n",&n,&m);
	for (int i=0;i<n;i++)
	{
		for (int j=0;j<m;j++)
		{
			mp[i][j]=1;
		}
	}
	for (int i=0;i<n;i++)
	{
		gets(ch);
		for (int j=0;j<m;j++)
		{
			if (ch[j]=='0') mp[i][j]=0;
		}
	}
	for (int i=0;i<n;i++)
	{
		for (int j=0;j<m;j++)
		{
			if (mp[i][j]) xy(i,j);
		}
	}
	printf("%d\n",s);
	return 0;
}
2022/2/12 11:31
加载中...