本题思路
我们只需要把每个柱子上的果汁水位设为最高果汁水位,再向四周释放果汁就可以了。最后的答案就是所有位置水的高度减原高度的和。
本题步骤
- 我们先找到最高的一个柱子,将最高水位设为这根柱子的高度。
- 将每个柱子上的果汁设为最高水位。
- 在四周的果汁都会流出去,所以四周果汁最高水位设为 \(0\)。
- 把四周的柱子放入小根堆。
- 开始广搜。
- 输出答案。
代码
[code]#includeusing namespace std;const int N=1e4+3;int watter_max,ans=0;int pic[N][N],G[N][N];int fx[4][2]={{1,0},{0,1},{0,-1},{-1,0}};priority_queueq;int main(){ int n,m; cin>>m>>n; for(int i=1;ipic[j]; G[j]=pic[j]; watter_max=max(watter_max,pic[j]); if(i==1||i==n||j==1||j==m) q.push(make_pair(i,j)); } } for(int i=1;i |