《TLE:1.01秒》
查看原帖
《TLE:1.01秒》
959419
Berd__楼主2024/5/7 18:00
#include<bits/stdc++.h>
#define map a
using namespace std;
char map[200][200]; 
int ans[200][200];
int n,m;
int main(){
	memset(ans,0x3f,sizeof(ans));
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>map[i][j];
		}
	}
	
	for(int i1=1;i1<=n;i1++){
	for(int j1=1;j1<=m;j1++){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(map[i][j]=='1'){
				ans[i][j]=0;
				if(j-1>=1) ans[i][j-1]=min(ans[i][j]+1,ans[i][j-1]);
				if(j+1<=m) ans[i][j+1]=min(ans[i][j]+1,ans[i][j+1]);
				if(i-1>=1) ans[i-1][j]=min(ans[i][j]+1,ans[i-1][j]);
				if(i+1<=n) ans[i+1][j]=min(ans[i][j]+1,ans[i+1][j]);
			} 
			else{
				if(j-1>=1) ans[i][j-1]=min(ans[i][j]+1,ans[i][j-1]);
				if(j+1<=m) ans[i][j+1]=min(ans[i][j]+1,ans[i][j+1]);
				if(i-1>=1) ans[i-1][j]=min(ans[i][j]+1,ans[i-1][j]);
				if(i+1<=n) ans[i+1][j]=min(ans[i][j]+1,ans[i+1][j]);
			}
		}
	}
}}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<ans[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2024/5/7 18:00
加载中...