uva 11387 - The 3-Regular Graph(构造)

2014-11-24 07:52:38 · 作者: · 浏览: 0

题目链接:uva 11387 - The 3-Regular Graph


题目大意:给出n,表示说有n个点,问说是否可以组成一个所有节点的度数均为3的无向图。


解题思路:首先判断说是否可能组成,一条边会导致两个点的度数加1,总度数加2。所以图的总度数一定是偶数,若n为奇数,n*3一定也为奇数,一定不可以。所以偶数的情况就一定是可行的(除了小于等于2),构造方法:节点前后相连,在等距离的与未连接的点建立一条边。


#include 
  
   
#include 
   
     int main() { int n; while (scanf("%d", &n) == 1 && n) { if (n % 2 || n <= 2) printf("Impossible\n"); else { int tmp = n / 2; printf("%d\n", tmp * 3); for (int i = 1; i <= n; i++) printf("%d %d\n", i, i % n + 1); for (int i = 1; i <= tmp; i++) printf("%d %d\n", i, i + tmp); } } return 0; }