zoukankan      html  css  js  c++  java
  • 图的遍历

    感觉自己好久不做这类题,脑子都有点抽了!

    这里放一道很有意思的题:

    链接戳这里☞

    一笔画问题

    下面是代码和详细注释:有兴趣的可以看一下!

        #include<cstdio>
        #include<cstring>
        #include<cstdlib>
        using namespace std;
        bool mp[1505][1505];//存边 
        int m,n,step[1505],num[1505],right;//分别是n:点个数;m:边个数;step:步数; num:记录存边时每一个点的已存边数; 
        //right:记录起始偶点; 
        bool judge();//判定奇偶点个数函数 
        void dfs(int v,int st,int begin)//对边进行深度搜索 v:当前点位置;st:步数;begin:起点 
        {
            if(st==m)// 如果步数和边数一样了! 输出答案! 
            {
                printf("%d",begin);
                for(int i=0;i<st;++i)
                {
                    printf(" %d",step[i]);
                }
                exit(0);//退出程序,在cstdlib中 
            }
            for(int i=1;i<=n;++i)
            {
                if(mp[v][i])//若有边没有被走过 
                {
                    mp[v][i]=false;//走过这条边 
                    mp[i][v]=false;//同上 
                    step[st]=i;//进行标记走过的点 
                    dfs(i,st+1,begin);
                    mp[v][i]=true;//如果退回,则取消标记走过这条边 
                    mp[i][v]=true;//同上 
                }
            }
        }
        int main()
        {
            scanf("%d%d",&n,&m);//n point m line
            int a,b;
            for(int i=1;i<=m;++i)//读入 
            {
                scanf("%d%d",&a,&b);
                mp[a][b]=true; 
                num[a]++;//☣
                mp[b][a]=true;
                num[b]++;
            }
            if(judge())
            {
                dfs(right,0,right);
            }
            else
            dfs(1,0,1);//若没有奇点,则直接从1点开始遍历! 
        }
        bool judge()//判断有无奇偶点,进行起点选择! 
        {
            int left=0;
            for(int i=1;i<=n;++i)
            {
                if(num[i]%2==1)
                {
                    right=i;
                    left++;
                }
            }
            if(left==2)
            return true;
            else
            return false;
    }
    
  • 相关阅读:
    985大学的部分课程链接
    SVD学习
    资源三:机器学习源代码
    资源二:计算机视觉,机器学习方面牛人网站链接
    资源一:计算机视觉,机器学习方面的论文和算法代码
    PHPCMS v9 分析(1)
    highcharts 配置选项
    highcharts 基本组成
    Jquery 代码性能改善
    非80端口的网站发布后外网访问的问题
  • 原文地址:https://www.cnblogs.com/mudrobot/p/13328902.html
Copyright © 2011-2022 走看看