NKOJ4405 HNOI2007 最小矩形覆盖 传送门
居然是纸质题面,十年前的OI真是jin啊
Solution
极度卡精题。。。
首先这个最小矩形一定过凸包上的点,且有一条边经过凸包上的一边
那么我们枚举这条边
这条边为$\vec {AB}$
利用旋转卡壳(叉积),可得在这条边最上方的点(矩形上界)
利用点积,可得在这条边最左侧和右侧的点(矩形左右界)
设最上方的点为$C$,左侧和右侧的为$D$和$E$
矩形四个角为$F,G,H,I$
利用点积求得$|\vec {AG} |$和$ |\vec {BF} | $,得到底边长
利用叉积求得高$h$,即利用单位面积,$h=\frac {\vec {AB}*\vec {AC}} {|\vec {AB}|}$
就可以算出现在的矩形面积
再用$\vec {AB} * \frac {|\vec {AG}|} {|\vec {AB}|}$ ,求得$\vec G、\vec F$
利用$\vec {AB}$ 的方向向量乘以$h$ ,求得$\vec {GI}$,从而得到$\vec H 、\vec I$
就这样。。注意细节就好
1 |
|