平面图转对偶图
平面图转对偶图常用于解决平面图的最小割问题。
一般的平面图转对偶图的通法是 “最小左转法”(其实也可以说成“最大左转法”,看你如何理解旋转角度)。
每一条无向线段,拆成两个方向的有向线段各一条。
每一条有向线段 \(u\to v\),在 \(v\) 的出边按 atan2 lower_bound 找 nxt:
当一条边一直沿着 nxt 走回到了自己,就形成了一个平面。
对每一个没有被 vis 的边执行上述操作,然后将新增的面编号,再将这些边编号挂在这个面上(此 vector 不妨叫做 coat),最后将这些边 vis=1。
唯一面积算出来(用叉积算)为负数的面即为无界面。
对了,反向边最好 i^1 像网络流那样前向星建图,这样方便找一个面的相邻面。
P2046 [NOI2010] 海拔
P3249 [HNOI2016] 矿区
P4073 [WC2013]平面图
本文来自博客园,作者:ShaoJia,版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。