BFS求助!!!!
查看原帖
BFS求助!!!!
457431
Li_wenjie楼主2021/11/7 22:47
#include<bits/stdc++.h>
using namespace std;
int a[101][101],path[4][4]={{-1,0},{1,0},{0,-1},{0,1}};
bool used[101][101];
struct Node
{
	int x,y,num;
};
int main()
{
	queue<Node>ans;
	int numb=0,n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			scanf("%1d",&a[i][j]);
		}
	Node firstt;
	firstt.x=1;
	firstt.y=1;
	firstt.num=a[1][1];
	used[1][1]=1;
	ans.push(firstt);
	while(!ans.empty())
	{
		Node kind=ans.front();
		ans.pop();
		for(int i=1;i<=4;i++)
		{
			int xx=kind.x,yy=kind.y;
			xx+=path[i][0];
			yy+=path[i][1];
			if(xx<=n&&xx>=1&&yy<=m&&yy>=1&&!used[xx][yy])
			{
				Node newnode;
				used[xx][yy]=1;
				newnode.x=xx;// 3 3
						//3 3
				newnode.y=yy;
				newnode.num=a[xx][yy];
				if(a[xx][yy]!=kind.num&&a[xx][yy]!=0)
				numb++;
				ans.push(newnode);
			}
		}
	}
	cout<<numb;
} 
2021/11/7 22:47
加载中...