zoukankan      html  css  js  c++  java
  • 欧拉路与欧拉回路

    欧拉路与欧拉回路的定义

    如果一张图中的一个路径包括每个边恰好一次,则该路径称为欧拉路。

    如果一个回路是欧拉路,则称为欧拉回路。

    欧拉路与欧拉回路的存在条件
    对于无向联通图
    欧拉路:只有两个点为奇点的无向图存在欧拉路(起点和终点为两个奇点)。
    欧拉回路:没有奇点的无向图存在欧拉回路。
    对于有向联通图
    欧拉路:一个顶点的出度-入度=1,另一个顶点的入度-出度=1,其他所有点入度等于出度时存在欧拉路(起点为出度-入度=1的点,终点为入度-出度=1的点)。
    欧拉回路:所有点的入度等于出度时存在欧拉回路。

    题目:

    1.一笔画问题(NYOJ42)

    描述

    zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。

    规定,所有的边都只能画一次,不能重复画。

    输入

    第一行只有一个正整数N(N<=10)表示测试数据的组数。 每组测试数据的第一行有两个正整数P,Q(P<=1000,Q<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P) 随后的Q行,每行有两个正整数A,B(0 < A,B < P),表示编号为A和B的两点之间有连线。

    输出

    如果存在符合条件的连线,则输出"Yes", 如果不存在符合条件的连线,输出"No"。

    #include<iostream>
    #include<vector>
    #include<cstring>
    using namespace std;
    const int maxn=1002;
    vector<int> graph[maxn];
    int n,m,cnt,in;
    bool visited[maxn];
    void dfs(int v)
    {
        for(int i=0;i<graph[v].size();i++) 
        {
            int e=graph[v][i];
            if(!visited[e]) 
            {
                cnt++;
                if(graph[e].size()%2) in++;
                visited[e]=true;
                dfs(e);
            }
        }
    }
    int main()
    { 
        int t;
        cin>>t;
        while (t--)  
        {
            cin>>n>>m;
            for(int i=0;i<=n;i++) graph[i].clear();
            for(int i=0;i<m;i++)
            {
                int x,y;
                cin>>x>>y;
                graph[x].push_back(y);
                graph[y].push_back(x);
            }
            cnt=0;
            in=0;
            memset(visited,false,sizeof(visited));
            dfs(1);
            if((m==0&&n==1)||(cnt==n&&(in==0||in==2))) cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
        return 0;
    }

     详解链接:https://www.cnblogs.com/Lewin671/p/8986270.html

     

  • 相关阅读:
    Android开发-MediaRecorder使用
    ScrollView嵌套ListView只显示一行的解决方法
    Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
    Dialog向Activity传递数据
    Android WebView使用深入浅出
    Android四大基本组件介绍与生命周期
    Java泛型的应用
    Java final关键字特点
    Java static关键字特点
    Java匿名内部类
  • 原文地址:https://www.cnblogs.com/Cnxz/p/12688265.html
Copyright © 2011-2022 走看看