zoukankan      html  css  js  c++  java
  • 一笔画

    欧拉环路 : 无向图的所有点的 度 都是 偶数 时 就一定可以形成一个环路。

    欧拉路径(一笔画): 无向图的所有点的 度 都是 偶数 时 或者 度of奇数 的 点 of num <=2 时 一定可以形成 欧拉路径。

    小注意:为什么用递归的方式(dfs)做一笔画 而且 路径在最下面:

    应为第一个返回递归时 一定是最后那个奇数度的点 所有倒叙记入路径 一定不会有错。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cmath>
    #include<cstdlib>
    #include<queue>
    #include<stack>
    #include<map>
    #include<vector>
    #include<functional>
    #define M 1005
    using namespace std;
    int i,j,n,m,arr[M][M],numm,vis,ans[100000],sp,beginn=1,r;
    void dfs(int k)
    {
        for(int ii=1;ii<=n;ii++)
        {
            if(arr[k][ii]==1)
            {
                arr[k][ii]=0;
                arr[ii][k]=0;
                dfs(ii);    
            }
        }   
        ans[numm++]=k;
    }
    int main(){
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {   sp=0;
            for(j=1;j<=n;j++)
            {   
                cin>>arr[i][j];
                if(arr[i][j]==1)
                sp++;
            }
            if(sp%2==1&&r==0)
            beginn=i;
            if(sp%2==1)
            r++;
        }
       if(r==0||r==2)
    {
        dfs(beginn);
        for(i=numm-1;i>=0;i--)
        {    if(i!=numm-1) cout<<" ";
              cout<<ans[i];
        }
    }
     else cout<<"No Solution!";
    }
    一笔画
  • 相关阅读:
    jar包和war包的区别:
    tail
    redis
    查看Linux操作系统版本
    CentOS 7.0 systemd代替service
    周刊(三月最后一期)
    周刊第四期
    周刊第三期
    周刊第二期
    周刊(第一期)
  • 原文地址:https://www.cnblogs.com/Lamboofhome/p/15449535.html
Copyright © 2011-2022 走看看