代码随想录图论part03

第十一章:图论part03

  1. 孤岛的总面积 (深搜)

代码随想录

孤岛问题:先处理边缘岛在处理孤岛

  1. 沉没孤岛 (广搜)

代码随想录

  1. 水流问题

代码随想录

目的:找水源

思路;逆向思考,找两个边界的公共源头,从第一边界出发找到所有源头,再从第二边界出发找到所有源头,重叠处即为目标

main:

深搜:

广搜:

104.建造最大岛屿

代码随想录

思路:首先找到目前最大面积的岛屿,然后遍历岛屿周边的海洋,然后找到以某一片海洋为中心的岛屿面积的最大值

第一步:

用一个map存岛屿及岛屿面积

计算岛屿面积并给他们编号

深搜(计算面积并标记):

整体代码:

第二步:

1.遍历岛屿周边海洋,岛屿已经有编号,获得周围连接岛屿总面积,根据编号查表

2.需要一个哈希来记录添加的新陆地周边(上右下左)已经计算过的岛屿编号,防止重复计算(例如,新陆地的左边和下边是同一片岛屿,这时候就得跳过左边),每次遇到新陆地就要清空该表,动态变化

整体代码:

总结:

  1. 前三道题都是逆向思考,从外向内
  2. 建造最大岛屿:第一步已经把整张图划分为几个区域,第二步就是整合区域然后找最大区域,每一步都有标记的过程,注意处理条件
相关推荐
闻缺陷则喜何志丹1 天前
【图论 组合数学】P10912 [蓝桥杯 2024 国 B] 数星星|普及+
c++·数学·蓝桥杯·图论
2301_764441331 天前
使用python构建的决策逻辑的图论
开发语言·python·图论
leoufung4 天前
组合问题:为什么用start避免重复
算法·深度优先·图论
mmz12076 天前
前缀和问题(c++)
c++·算法·图论
剪一朵云爱着6 天前
PAT 1131 Subway Map
算法·pat考试·图论
hakertop6 天前
如何基于C#读取.dot图论文件并和QuickGraph联动
数据库·c#·图论
烛衔溟6 天前
C语言图论:无向图基础
c语言·数据结构·图论·无向图
小李小李快乐不已6 天前
图论理论基础(5)
数据结构·c++·算法·机器学习·动态规划·图论
烛衔溟6 天前
C语言图论:有向图基础
c语言·数据结构·图论·有向图
zheyutao7 天前
割点和桥
算法·图论