抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

有一张二分图,左边有 n1n_1 个点,右边有 n2n_2 个点,mm 条边。每个点可能有一种颜色 R 或者 B,也可能没有,也就是 U。现在要给一些边染色,把边染成 R 要花费 rr 的代价,把边染成 B 要花费 bb 的代价,要求对于每个颜色为 R 的点,与之相邻的边中 R 的边 严格多于 B 的边;对于每个颜色为 B 的点,与之相邻的边中 B 的边 严格多于 R 的边。求花费最小的方案,输出任意一种,无解输出 1-1。其中 1n1,n2,m,r,b2001 \le n_1, n_2, m, r, b \le 200

考虑网络流建图,对于每条边 <u,v>\left<u,v\right>,在网络流图上建立两条边:uvu\to v,如果流表示将该边染成红色,vuv\to u,表示将改变染成黑色。

建立超源 ss 和超汇 tt,考虑左边红色点,ss 向该点连一条下界为 11 的边,表示强制流红大于流黑,对于左边黑色点,该点向 tt 连一条下界为 11 的边,表示强制流黑大于流红,右边同理。

最后跑一遍费用流即可。

评论