卧薪尝胆,厚积薄发。
SPOJ 839 Optimal Marks
Date: Mon Mar 25 13:08:01 CST 2019 In Category: NoCategory

Description:

无向图的边权为两个端点的值的异或值。给出一个图,有一些点的权值已经确定,确定其他点的点权,最小化边权和,在这个基础上最小化点权和。
$1\leqslant n\leqslant 500,1\leqslant m\leqslant 2000$

Solution:

首先各个二进制位之间是完全独立的,那么我们可以一位一位贪心,会发现我们可以把这一位为 $0$ 和这一位为 $1$ 看成两个集合,我们要最小化两个集合中的边数,这就是一个最小割问题,然后点权和最小就把尽量多的点分到 $S$ 集即可。

Code:


没有代码
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡