1 条题解

  • 0
    @ 2023-07-16 20:29:04
    //霸占无人区
    #include<bits/stdc++.h>
    using namespace std;
    char a[105][105];
    int n,m,ans=0;
    int dir[4][2]={0,1,1,0,0,-1,-1,0};
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                cin>>a[i][j];
                if(a[i][j]=='@')
                    ans++;
            }
        cin>>m;m--;
        while(m--)
        {
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(a[i][j]=='@')
                    {
                        for(int k=0;k<4;k++)
                        {
                            int ni=i+dir[k][0];
                            int nj=j+dir[k][1];
                            if(a[ni][nj]=='.'&&ni>=1&&ni<=n&&nj>=1&&nj<=n)
                            {
                                a[ni][nj]='$';
                                ans++;
                            }
                        }
                    }
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(a[i][j]=='$')
                        a[i][j]='@';
        }
        cout<<ans; 
        return 0;
    }
    
  • 1

信息

ID
1914
难度
6
分类
(无)
标签
递交数
26
已通过
9
通过率
35%
被复制
6
上传者