8 条题解

  • 0
    @ 2026-4-20 18:36:53

    #include<bits/stdc++.h> #define int long long using namespace std; int n,m,ans; int dir[8][2]={{-1,0},{1,0},{0,-1},{0,1},{-1,-1},{-1,1},{1,-1},{1,1}}; char w[115][115]; struct point{ int px,py; }; queue que; void bfs(int tx,int ty){ w[tx][ty]='.'; que.push((point){tx,ty}); while(!que.empty()){ point p=que.front(); que.pop(); for(int i=0;i<8;i++){ int nx=p.px+dir[i][0]; int ny=p.py+dir[i][1]; if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&w[nx][ny]'W'){ w[nx][ny]='.'; que.push((point){nx,ny}); } } } } signed main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>w[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(w[i][j]'W'){ bfs(i,j); ans++; } } } cout<<ans; }

    信息

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