K正规图, 就是指图中每个点的度数都是K的无向图.
定义一下变量, V是图中点的个数, E是边的个数,K是每个点的度.
这个问题其实不涉及什么算法, 分类讨论就行.
1, K=0, 就是没有边的图.
2, K>=V, 那么就无解, 因为每个点最大的度就是V-1.
3, 0<K<V
在继续讨论之前, 说一个事实, K*V=2*E, 那么就是说, 如果V是奇数, 那么K不能是奇数.
所以要对于V进行一下分类讨论.
3.1 V是偶数,
那么, 可以按照这个方法构造, 把所有的点(绕着一个圆)排成一个环, 连接相邻的, 那么就构造了K=2(两点在环上距离为1), 而连接相隔一个点的点(两点在环上距离为2), 就会构造出K=4, 向后以此类推, 直到两点相距为V/2.
上面的方法, 可以对V的图, 构造出{0, 2,4, ... V-2}的度. 而连接正对的两个点(两点在环上距离V/2), 会给每个点增加1的度.
这样就可以在上面算法的基础上, 构造出所有的奇数度.
{1,3, ... V- 1}. 综合起来, 就保证构造出{1,2, ... V-1}的度.
3.2 V是奇数
K不能构造出奇数度来, 而构造偶数的度的方法和上面算法差不多.
感慨思考的乐趣~