前几天机房断网没时间更新。这地道歉顺便祝大家新年快乐。
非常遗憾,这道题在网上没有找到,题目较为简单所以我直接说思路了。
题目大意是给定一个平面,每一个点都有一个高度,一场雨后,问那些格子有积水,并求出总的积水量。(边界上的格子是不会积水的)
这道题非常的基础,有些地方想清楚就非常简单了,根据生活常识,我们知道一个地方有积水当且仅当其四周都比它高时才有可能。我们首先将所有边界上的格子都加入一个小根堆中,每次取出高度最低的一个格子进行拓展,将其四周的格子都扫一遍,如果扫到比它高的显然不可能积水,则入堆,找到矮的则很简单的看其周围的高度是否比他高。这既是我所谓的floodfill法(这看起来其实和bfs没有什么实质性的区别)
具体实现时我想应该需要一个h数组首先存放正无穷,然后每次更新其值会比较方便。