题目看这里: ​​​​​​​

很基础的一道广搜模板题了。

#include<bits/stdc++.h>
using namespace std;
struct ss{
	int x,y;
};
ss g[10010];
int n,m;
int cnt,h,t,nx,ny;
int a[110][110];
int dx[5]={0,0,1,0,-1};
int dy[5]={0,1,0,-1,0};
int main() {
	cin>>n>>m;
	h=0;t=1;
	g[t].x=1;g[t].y=1;
	cnt=1;
	a[t][t]=cnt;
	while(h<t){
		h++;
		for(int i=1;i<=4;i++){
			nx=g[h].x+dx[i];
			ny=g[h].y+dy[i];
			if(nx>=1&&ny>=1&&nx<=n&&ny<=m&&a[nx][ny]==0){
				a[nx][ny]=++cnt;
				g[++t].x=nx;
				g[t].y=ny;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐