zoukankan      html  css  js  c++  java
  • 九度OJ 1027:欧拉回路 (欧拉回路)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:2989

    解决:1501

    题目描述:
        欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
    输入:
        测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结束。
    输出:
        每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
    样例输入:
    3 3
    1 2
    1 3
    2 3
    3 2
    1 2
    2 3
    0
    样例输出:
    1
    0
    来源:
    2008年浙江大学计算机及软件工程研究生机试真题

    思路:

    开始以为这道题让输出欧拉回路,后来发现只要判断是否存在就可以了。判断欧拉回路非常简单:

    (1)对无向图,所有点度数为偶数;

    (2)对有向图,所有点入度等于出度,出发点和终止点分别多一条入度和出度。


    代码:

    #include <stdio.h>
    #include <string.h>
     
    #define N 1000
     
    int main(void)
    {
        int n, m;
        int i, j;
        int a, b;
        int map[N+1][N+1];
     
        while (scanf("%d%d", &n, &m) != EOF && n)
        {
            memset(map, 0, sizeof(map));
            for (i=0; i<m; i++)
            {
                scanf("%d%d", &a, &b);
                map[a][b] = map[b][a] = 1;
            }
     
            for (i=1; i<=n; i++)
            {
                int degree = 0;
                for (j=1; j<=n; j++)
                {
                    if (map[i][j])
                        degree ++;
                }
                if (degree%2 == 1)
                    break;
            }
            if (i <= n)
                printf("0
    ");
            else
                printf("1
    ");
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1027
        User: liangrx06
        Language: C
        Result: Accepted
        Time:80 ms
        Memory:4756 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    浅析C++中的this指针
    转:函数指针数组的妙用(I)
    函数指针与函数指针数组的使用方法
    指针函数与函数指针的区别
    二叉树的镜像
    树的子结构
    Irrlicht 3D Engine 笔记系列 之 教程5- User Interface
    Android获取当前连接的wifi名称
    dlopen 方式调用 Linux 的动态链接库
    Appium基于安卓的各种FindElement的控件定位方法实践和建议
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5084004.html
Copyright © 2011-2022 走看看