题解 P5687 【网格图【暂无数据】】
求求管理造造数据吧……
仿照
首先取出最小的边权。不失一般性,下面的讨论基于这个边权出现在行中进行。显然这些边都要连上。
接下来一直向下取,直到取到不是行中的边权为止。此时不可能有环,必须要全取。
对于第一个列中的边权,显然此时也不可能有环,必须要全取。
对于接下来的每一种边权,我们维护两个集合
对于接下来的每一种行中的边权,可以发现,这一行的
同理,对于每种列中的边权,这种边的条数为
可以发现,我们只用到了两个变量
综上,我们的算法是:
- 排序;
- 设最小的边权出自行中,不断分析边权,直到取完了第一个列中的边权;
- 对于之后的边,维护
sr,sc ,对于每个行中的边权vr ,令sr=sr+1 ,并将vr\times (m-sc) 累加入答案中;列中边权同理。
总时间复杂度