当前位置: 首页 > news >正文

全球变暖-bfs

1.不沉的就是4个方向没有海,一个大岛屿有一个不沉就行了,其余染色就好了

2.第一个bfs来统计总岛屿个数

3.第二个来统计不沉岛屿个数

4.一减就ac啦

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<ll,int> pii;
int n;
char mp[1011][1011];
bool a[1011][1011];
int dx[8]={-1,-1,0,1,1,1,0,-1};
int dy[8]={0,1,1,1,0,-1,-1,-1};
int wx[4]={-1,0,1,0};
int wy[4]={0,1,0,-1};
bool b[1011][1011];
typedef struct node
{int x,y;
}node;
bool check(int x,int y)
{if(mp[x][y]=='.') return false;if(x+1<=n){if(mp[x+1][y]=='.') return false;}if(y+1<=n) if(mp[x][y+1]=='.') return false;if(x-1>=1) if(mp[x-1][y]=='.') return false;if(y-1>=1) if(mp[x][y-1]=='.') return false;return true;
}
void bfs(int x,int y)///这个bfs是找到了不沉海的岛屿,然后利用bfs染色其岛屿,///最后遍历一遍就能知道原来的岛屿中 哪些是不沉的 
{a[x][y]=true;queue<node> q;q.push({x,y});while(q.size()){node t=q.front();q.pop();int x=t.x,y=t.y;for(int i=0;i<4;i++){int tx=x+wx[i];int ty=y+wy[i];if(tx>=1&&tx<=n&&ty>=1&&ty<=n){if(!a[tx][ty]&&mp[tx][ty]=='#'){a[tx][ty]=true;q.push({tx,ty});}}}}
}
void bfs1(int x,int y)///找总岛屿个数 
{b[x][y]=true;queue<node> q;q.push({x,y});while(q.size()){node t=q.front();q.pop();int x=t.x,y=t.y;for(int i=0;i<4;i++){int tx=x+wx[i];int ty=y+wy[i];if(tx>=1&&tx<=n&&ty>=1&&ty<=n){if(!b[tx][ty]&&mp[tx][ty]=='#'){b[tx][ty]=true;q.push({tx,ty});}}}}
}
ll an,am;
int main()
{cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>mp[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(mp[i][j]=='#'&&!b[i][j]){bfs1(i,j);am++;}}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(mp[i][j]=='#'&&check(i,j)&&!a[i][j])///满足check就不沉,一个岛屿有一个就行‘///剩下就染色防止重复遍历就行了 {bfs(i,j);an++;}}}cout<<am-an;return 0;
}

相关文章:

  • matlab计算天线的近场和远场
  • MongoDB使用x.509证书认证
  • Matlab基于PSO-MVMD粒子群算法优化多元变分模态分解
  • 逆向破解:x64dbg
  • Python 处理图像并生成 JSONL 元数据文件 - 灵活text版本
  • 机器学习——集成学习基础
  • AI边缘网关_5G/4G边缘计算网关厂家_计讯物联
  • Clion远程开发git触发“No such device or address”的解决方案
  • 数据库笔记(1)
  • Oracle adg环境下调整redo日志组以及standby日志组大小
  • 音视频学习:使用NDK编译FFmpeg动态库
  • Matlab 基于GUI的汽车巡航模糊pid控制
  • 榜单按行显示
  • Baumer工业相机堡盟工业相机的工业视觉是否可以在室外可以做视觉检测项目
  • Fellou智能体调研
  • c# 如何在集合中转换为子类集合
  • 监控易运维管理软件:架构稳健,组件强大
  • 使用 Navicat 将 Excel 导入数据库
  • .NET 8 API 实现websocket,并在前端angular实现调用
  • 代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
  • 这一次,又被南昌“秀”到了
  • 印巴战火LIVE丨“快速接近战争状态”?印度袭击巴军事基地,巴启动反制军事行动
  • 湖南省职业病防治院通报3岁女童确诊“铊中毒”:去年病例,编辑误写为“近日”
  • 上海楼市“银四”兑现:新房市场高端改善领跑,二手房量价企稳回升
  • 上海“随申兑”服务平台有哪些功能?已归集800余个惠企政策
  • 最新研究:基因编辑治疗晚期胃肠道癌显成效