acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • 大佬们帮帮忙

    userId_undefined

    哈

    10阅读
    1回复
    0点赞
  • 题解

    #include <iostream> #include <queue> using namespace std; struct node{ int x,y; }; queue<node> q; char map[1005][1005]; int vis[1005][1005],dir[4][2]={1,0,0,1,-1,0,0,-1}; int n,m,ans=0; void bfs(){ while(q.size()){ node t=q.front(); q.pop(); for(int i=0;i<4;i++){ int nx=t.x+dir[i][0]; int ny=t.y+dir[i][1]; if(nx<0 || nx>=n || ny<0 || ny>=m || vis[nx][ny] || map[nx][ny]'*'){ continue; } vis[nx][ny]=1; q.push({nx,ny}); } } } int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>map[i][j]; if(i0 || j0 || in-1 || jm-1){ if(map[i][j]'0'){ vis[i][j]=1; q.push({i,j}); } } } } bfs(); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(map[i][j]=='0' && !vis[i][j]){ ans++; } } } cout<<ans; return 0; }

    userId_undefined

    爱吃儿童餐的哥莫拉{必回关}

    时间刺客空间掌握者时空双修者出道萌新分支·分支解题者循环·循环打卡人
    0阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页