妙题。
要求线段不相交,即要求连线长度总和最小。
黑点向白点连边,容量 \(1\),费用为它俩的距离。\(s\) 向黑点/白点向 \(t\) 连边,容量 \(1\) 费用 \(0\)。跑最小费用最大流。
然后检查每个黑点是哪个边流了即可。
注意这里一定不能偷懒不开根号!否则原本 \(e1.cst<e2.cst+e3.cst\) 不开根号可能 \(e1.cst>e2.cst+e3.cst\)。