全部评论 4

  • 答:用bfs触怒了dfs之神,简单代码如下:
    #include <bits/stdc++.h>
    using namespace std;
    int n,m,sx,sy,fx,fy,d,jo;
    char mg[501][501];
    bool bfr[501][501];
    #define check(x,y) (x>=1&&y>=1&&x<=n&&y<=m)
    void dt(int x,int y){
    bfr[x][y]=1;
    if(xfx&&yfy) return;
    if(x<n&&(mg[x+1][y]!=''&&!bfr[x+1][y])) {if(check(x+1,y)) d++;dt(x+1,y);}
    if(y<m&&(mg[x][y+1]!='
    '&&!bfr[x][y+1])) {if(check(x,y+1)) d++;dt(x,y+1);}
    if(y>1&&(mg[x][y-1]!=''&&!bfr[x][y-1])) {if(check(x,y-1)) d++;dt(x,y-1);}
    if(x>1&&(mg[x-1][y]!='
    '&&!bfr[x-1][y])) {if(check(x-1,y)) d++;dt(x-1,y);}
    }
    int main()
    {
    cin>>n>>m;
    for(int i=1;i<=n;++i) for(int j=1;j<=m;j){
    cin>>mg[i][j];
    if(mg[i][j]=='*') jo
    ;
    }
    for(int i=0;i<=n+1;++i) dt(i,0);
    for(int i=1;i<=m+1;++i) dt(0,i);
    for(int i=1;i<=m+1;++i) dt(n+1,i);
    for(int i=1;i<=n;++i) dt(i,m+1);
    cout<<n*m-jo-d;
    return 0;
    }
    希望你能用你的智慧把dfs发扬光大

    1周前 来自 广东

    0
  • hi

    1周前 来自 广东

    0
  • 你题目没看明白,题目要求的是没有被洪水淹没的地方的0的数量。

    2024-05-24 来自 新加坡

    0
  • 2024-05-23 来自 广东

    0

热门讨论