难点在于想到三元环计数的方法:
[sum_{i, j, k}[(i,j)=1][(j,k)=1][(k,i)=1] = egin{pmatrix}
n \
3
end{pmatrix} - sum_{u} egin{pmatrix} outd[u] \ 2 end{pmatrix}]
我们的目的在于给剩下的边定向,最小化 (sum_{u} egin{pmatrix} outd[u] \ 2 end{pmatrix})
然后就开始套路了。 边化点。(S) 向每条“边”连边,“边”向两端点连边,每个原图点向 (T) 连边,然后就成功转化成匹配问题。
考虑到我们目标是要最小化那个式子,并且一个点增加一个出度,代价就会多 (i-1)(假设现在出度为 (i))。(这个类似于P4307 [JSOI2009]球队收益 / 球队预算
的拆分思想,合法条件是代价函数为下凸函数的右下部分)