6 条题解

  • 0
    @ 2023-12-17 16:51:32
    col1 col2 col3
    #include<bits/stdc++.h>
    using namespace std;
    int xx[9]={0,-1,-1,-1,0,0,1,1,1};//x方向
    int xy[9]={0,-1,0,1,-1,1,-1,0,1};//y方向
    int n,m,ans;
    char a[105][105];
    void dfs(int x,int y)
    {
    int r,c;
    a[x][y]='.';
    for (int i=1;i<=8;i++)
    {
    r=x+xx[i];
    c=y+xy[i];
    if (r<1 r>n
    continue;
    a[r][c]='.';
    dfs(r,c);
    }
    int main()
    {
    scanf("%d %d\n",&n,&m);
    for (int i=1;i<=n;i++)
    {
    for (int j=1;j<=m;j++)
    cin>>a[i][j];
    }
    ans=0;
    for (int i=1;i<=n;i++)
    {
    for (int j=1;j<=m;j++)
    {
    if (a[i][j]=='W')
    {
    ans++;
    dfs(i,j);
    }
    printf("%d\n",ans);
    return 0;
    }
    • [ ]

    信息

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