求一个图,每一个点的度数都为K并且必须至少要有一个桥.
构造题:
仅仅有k为奇数的时候有解, 构造这种一个图,左边一团有 k+1 个点 , 右边一团也有 k+1 个点, 中间经过 m1 , m2 连着一个桥.
假设左右两团是全然图,则每一个点的度数都为k, 如今考虑怎样通过m1,m2连接起来而又不改变度数.
显然这个图是对称的,仅仅考虑左边和点m1,m1和m2是一个桥,要连一条边,m1 和左边的团某个点A要连在一起,又要连一条边,这时A点的度数多了,要和团里的其它点B断掉一条边,为了保持B的度数不变,B再连一条边到m1,这时m1的度就至少为3了,然后将m1的度补全. 每次从左边团中删掉一条边,然后将这条边的两个点连到m1上就能够了.m1的度每次添加2,所以假设k为奇数的话都能够用这个方案构造出来.
import java.util.*;import java.math.*;public class Main{ int k,midl,midr; boolean[][] edge = new boolean[330][330]; boolean[] used = new boolean[330]; void cut_and_link(int from,int to,int goal) { int tk=k-3; while(tk>0) { boolean flag=false; for(int i=from;i