zoukankan      html  css  js  c++  java
  • UVA11387

    题目链接


    题意:给n个点,问能否画出一个无向图。且每一个顶点连接3条边。假设能够的话输出连接的边。

    思路:当添加一条边时,总的无向图的度数会添加2,所以度数之和n*2为偶数。当n为奇数时,度数之和为奇数,所以不存在。当n为偶数时才符合条件。注意特判n为2时的情况。

    输出的话,就头尾相连,然后i与i+(n/2)相连。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int const MAXN = 105;
    
    int n;
    
    void outPut() {
        printf("%d
    ", n * 3 / 2);
        for (int i = 1; i <= n; i++) {
            int a = i;
            int b = i + 1;
            if (b > n)
                b %= n;
            printf("%d %d
    ", a, b);  
        } 
        for (int i = 1; i <= n / 2; i++)
            printf("%d %d
    ", i, i + (n / 2));
    }
    
    int main() {
        while (scanf("%d", &n) && n) {
            if (n < 4 || n % 2) 
                printf("Impossible
    ");
            else 
                outPut();         
        }
        return 0;
    }


  • 相关阅读:
    c++类中比较重要的几个函数
    rosbag使用方法
    2.urllib库的使用
    什么叫做API?
    1.爬虫基础
    正则表达式

    time模块
    random模块
    日志处理
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5226287.html
Copyright © 2011-2022 走看看