暴力可过,峰值729ms,很惊险,代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,m,ans[205][205],d1[40005][2],d0[40005][2],t1,t2;
int main()
{
    ios::sync_with_stdio(false);
    memset(ans,0x3f3f,sizeof ans);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            char c;cin>>c;
            if(c==48)
            {
                d0[++t2][0]=i;
                d0[t2][1]=j;
            }
            else
            {
                ans[i][j]=0;
                d1[++t1][0]=i;
                d1[t1][1]=j;
            }
        }
    for(int i=1;i<=t2;i++)
        for(int j=1;j<=t1;j++)
            ans[d0[i][0]][d0[i][1]]=min(ans[d0[i][0]][d0[i][1]],abs(d0[i][0]-d1[j][0])+abs(d0[i][1]-d1[j][1]));
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            cout<<ans[i][j]<<' ';
        cout<<endl;
    }
    return 0;
}

1 条评论

  • 1

信息

ID
2055
难度
8
分类
(无)
标签
递交数
15
已通过
6
通过率
40%
被复制
4
上传者