第11个点没过为啥100分了?
查看原帖
第11个点没过为啥100分了?
654577
RainySoul楼主2022/8/22 17:19

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,k=1,minn=20000;
char a[20000][20000]; 
int b[20000][20000];
struct zt{
	int x,y;
}c[20000];
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=m;j++){
    		cin>>a[i][j];
    		if(a[i][j]=='1'){
    			b[i][j]=0; 
    			c[k].x=i,c[k].y=j;
    			k++;
			}
		}
    for(int i=1;i<=n;i++) {
    	for(int j=1;j<=m;j++){
    		if(a[i][j]=='0'){
    			for(int z=1;z<k;z++)minn=min(minn,abs(i-c[z].x)+abs(j-c[z].y));
    			b[i][j]=minn;
    			minn=20000;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<b[i][j]<<" ";
		}
		cout<<endl;
	}
    return 0;
}
2022/8/22 17:19
加载中...