6 条题解

  • 1
    @ 2023-4-2 11:02:26
    #include<bits/stdc++.h>//万能头
    using namespace std;
    char mp[165][165];//水塘
    int n,m,s,v[165][165];
    int d[8][2]={1,0,0,1,-1,0,0,-1,1,-1,-1,1,-1,-1,1,1}; //8方向
    void p(int x,int y)
    {
    int i,dx,dy;
    v[x][y]=1;//已遍历过
    for(i=0;i<=7;i++)
    {
    dx=x+d[i][0];//往8个方向
    dy=y+d[i][1];//继续扩展
    if(mp[dx][dy]=='W'&&v[dx][dy]==0)//若未遍览过 且 为水坑则继续
    {
    p(dx,dy);//继续搜索
    }
    }
    }
    int main()
    {
    cin>>n>>m;//输入n,m
    s=0;//水坑数
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=m;j++)
    {
    cin>>mp[i][j];//输入
    }
    }
    for(int i=1;i<=n;i++)//
    {
    for(int j=1;j<=m;j++)
    {
    if(mp[i][j]=='W'&&v[i][j]==0)//若未遍览过 且 为水坑则继续
    {
    p(i,j);//搜索
    s++;//搜索完毕,水塘总数+1
    }
    }
    }
    cout<<s;//输出s
    return 0; //结束
    }
    

    信息

    ID
    2617
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    52
    已通过
    25
    上传者