平面图转对偶图

平面图转对偶图常用于解决平面图的最小割问题。

一般的平面图转对偶图的通法是 “最小左转法”(其实也可以说成“最大左转法”,看你如何理解旋转角度)。

每一条无向线段,拆成两个方向的有向线段各一条。

每一条有向线段 \(u\to v\),在 \(v\) 的出边按 atan2 lower_bound 找 nxt:

image

当一条边一直沿着 nxt 走回到了自己,就形成了一个平面

对每一个没有被 vis 的边执行上述操作,然后将新增的面编号,再将这些边编号挂在这个面上(此 vector 不妨叫做 coat),最后将这些边 vis=1。

唯一面积算出来(用叉积算)为负数的面即为无界面

对了,反向边最好 i^1 像网络流那样前向星建图,这样方便找一个面的相邻面。

P2046 [NOI2010] 海拔

P3249 [HNOI2016] 矿区

P4073 [WC2013]平面图

posted @ 2022-08-07 22:36  ShaoJia  阅读(308)  评论(0编辑  收藏  举报