给定一个无向图 G=(V,E),设 U包含于V 是 G 的顶点集。对任意(u,v)∈E,若有 u∈U 且v∈V-U,就称(u,v)为关于顶点集 U 的一条割边。顶点集 U 的所有割边构成图 G 的一个割。 G 的最大割是指 G 中所含边数最多的割。 «算法设计: 对于给定的无向图 G,设计一个优先队列式分支限界法,计算 G 的最大割。
Input
输入第 1 行有 2 个正整数 n 和 m,表示给定的图 G 有 n 个顶点和 m 条边,顶点编号为 1,2,…,n。接下来的 m 行中,每行有 2 个正整数 u,v,表示图 G 的一条边(u,v)。
Output
将计算出的最大割的边数和顶点集 U 输出。第 1 行是最大割的边数;第 2 行是表示顶点集 U 的向量, xi ,1 <= i <= n , xi =0 表示顶点 i 不在顶点集U 中, xi =1 表示顶点 i 在顶点集 U 中。