zoukankan      html  css  js  c++  java
  • 图论一笔画问题代码基本框架

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    #define maxn 10001
    int map[maxn][maxn];//读入
    int du[maxn];//记录每个点的度,就是相连的边的数目
    int Euler[maxn];//用来记录找到的欧拉路的路径
    int n,m,x,y,start,lll;//lll的意思是——我也不知道-_-!;
    void find(int i)//从开始的顶点深度优先遍历过程寻找欧拉路
    {
        for(int j=1;j<=n;j++)
        if(map[i][j]==1)          //从任意一个与它相连的点出发
        {
            map[j][i]=map[i][j]=0;
            find(j);
        }
        Euler[++lll]=i;//记录下路径
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin>>n>>m;
        for(int i=1;i<=m;i++)
        {
            cin>>x>>y;
            map[y][x]=map[x][y]=1;
            du[x]++;      //统计每个点的入度
            du[y]++;     //统计每个点的出度
        }
        start=1;      //如果有奇点,就从奇点开始寻找,这样找到的就是欧拉路
        for(int i=1;i<=n;i++)        //欧拉回路。没有奇点就从任意点开始,
           if(du[i]%2==1)  //这样因为每一个点都是偶点,找到的就是欧拉回路。
               start=i;
        lll=0;
        find(start);
        for(int i=1;i<=lll;i++)
            cout<<Euler[i]<<' ';
        cout<<endl;
        return 0;
    }

  • 相关阅读:
    Django Rest Framework 视图和路由
    DRF 权限 频率
    DRF 版本 认证
    Serializers 序列化组件
    学DRF之前
    RESTful
    windows下vmware配置nat网络
    python之路——网络编程
    图片上传
    数据库基本设计规范:
  • 原文地址:https://www.cnblogs.com/kuaileyongheng/p/6894242.html
Copyright © 2011-2022 走看看