CF1455E Four Points

四个点调整成一个正方形的四个顶点上的所需最小步数。

 

猜:最优方案中有一个点不需要动。

感觉证明方案最优,没有调整法以外的办法了吧。

首先,我们完全可以枚举4的组合数,来确定哪些点放置在哪些角落上。

一旦这个放置方式确定后,对于要变成左下角和左上角的点,它们的x必须一致。

因此至少付出abs(x-x')的代价。

似乎按照这个思路,直接就做完了。

 

我艹,忘了这样形成的是矩形,不一定是正方形。

再次猜一波:最后的正方形,是我已经调整好的矩形的基础上,再把宽边加长或者长边缩宽得到的。

首先,变成矩形,我的算法应该是最优的,因为我们付出的代价都是无法逃避的。

如果先付出代价,变成矩形,然后计算矩形变为正方形的最小代价,加起来,可能会让一个点出现来回移动的多余代价。

还是看题解。

 

发现是基于这么一个性质:最终的正方形,设坐标分量x1,x2,y1,y2

那么至少有一个xi是与原来四个点其中一个点的x重合,对于y来说也一样。

然后想象一下,就知道要么还有一个xi也与先前点重合,要么还有一个yi也与先前点重合。可以用调整法想象。

三个分量确定后,因为正方形边长相等,另外一个分量也确定了。

这样枚举计算即可。

posted @ 2021-03-13 14:13  AngelKnows  阅读(105)  评论(0)    收藏  举报