很有生活气息的题。
思路
首先想到,我们可以在开始时先统计一下总共有多少个岛,然后再统计水面上升之后有多少个岛,然后一减!
但是我们发现,这样只有 。
于是我们找到了一个错误的数据:
我们的方法居然会得出 !
我们来看看,这个地图在水面上升之后会变成什么样:
个岛分裂成了 个岛!难怪输出会错!
再回去看题面:
请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。
所以说,如果一个大岛分裂成了若干个小岛,那么这些小岛其实是算在同一个岛力的,因为分裂出它们的那个大岛没有被完全淹没(有露出水面的小岛)。
于是我们还需要在开始时给每个岛一个编号,最后统计水面上的残部有多少个不同的编号,而不是最后岛的个数。
代码
STL 大法好!