1 条题解

  • 1
    @ 2019-07-02 11:07:21

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=10010;
    int a[11][11],nexx[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
    int hx[maxn],hy[maxn],tx,ty,head,tail,sum=0;
    void init()
    {
    for(int i=1;i<=10;i++)
    for(int j=1;j<=10;j++)
    cin>>a[i][j];

    }
    void bfs(int x,int y)
    {
    head=0;tail=1;
    hx[tail]=x;

    hy[tail]=y;
    a[x][y]=1;
    while(head<tail)
    {
    head++;
    int tx,ty;
    for(int i=0;i<4;i++)
    {
    tx=hx[head]+nexx[i][0];
    ty=hy[head]+nexx[i][1];
    if(tx>=1&&tx<=10&&ty>=1&&ty<=10&&a[tx][ty]==0)
    {
    tail++;
    hx[tail]=tx;
    hy[tail]=ty;
    a[tx][ty]=1;
    }
    }
    }
    }
    int main()
    {
    init();
    for(int i=1;i<=10;i++)
    {
    if(a[i][1]==0) bfs(i,1);
    if(a[1][i]==0) bfs(1,i);
    if(a[i][10]==0) bfs(i,10);
    if(a[10][i]==0) bfs(10,i);
    }

    for(int i=1;i<=10;i++)
    for(int j=1;j<=10;j++)
    if(a[i][j]==0) sum++;

    cout<<sum<<endl;
    return 0;
    }

  • 1

信息

难度
4
分类
(无)
标签
递交数
82
已通过
33
通过率
40%
上传者