USACO 2016 February Contest Fenced In

有一个平面,左下角是(0,0),右上角是(A,B)。

有n个平行于y轴的栅栏a1..an,表示挡在(ai,0)到(ai,B)之间。

有m个平行于x轴的栅栏b1..bn,表示挡在(0,bi)到(A,bi)之间。

这样,平面被划成了(n+1)*(m+1)块。

现在要去掉某些栅栏的一部分,使得每一块都连通。

图就不上了,一会一下吧。

求最少需要去掉多少长度的栅栏使得每一块都连通。


考虑贪心,将边处理后排序,每次取最短的边

若是平行于x轴就删去m−j+1条该边,若是平行于y轴就删去n−i+1条该边。

posted @ 2018-07-11 19:34  新手-周  阅读(119)  评论(0编辑  收藏  举报