1 条题解

  • 0
    @ 2026-10-25 15:08:46

    思路

    非正方形网格连通区域计数,包含起点且处理零终止。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int main(){int w,h;while(cin>>w>>h&&(w||h)){vector<string>a(h);queue<pair<int,int>>q;for(int i=0;i<h;i++){cin>>a[i];for(int j=0;j<w;j++)if(a[i][j]=='@'){q.push({i,j});a[i][j]='#';}}int ans=0;while(!q.empty()){auto p=q.front();q.pop();ans++;int dx[]={1,-1,0,0},dy[]={0,0,1,-1};for(int k=0;k<4;k++){int x=p.first+dx[k],y=p.second+dy[k];if(x>=0&&x<h&&y>=0&&y<w&&a[x][y]=='.'){a[x][y]='#';q.push({x,y});}}}cout<<ans<<'\n';}}
    
    • 1

    信息

    ID
    1116
    时间
    1000ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者