zoukankan      html  css  js  c++  java
  • uva 10054 The Necklace 欧拉回路

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int g[60][60],in[100],n,m;
    
    void dfs(int t)
    {
        int i;
        for(i=1; i<=50; i++)
            if(g[t][i])
            {
                g[t][i]--;
                g[i][t]--;
                dfs(i);
                printf("%d %d
    ",i,t);
            }
    }
    
    int main()
    {
        int _,i,j,u,v,cnt,cas=0;
        scanf("%d",&_);
        while(_--)
        {
            scanf("%d",&n);
            memset(in,0,sizeof(in));
            memset(g,0,sizeof(g));
            m=0;
            for(i=0; i<n; i++)
            {
                scanf("%d%d",&u,&v);
                in[u]++;
                in[v]++;
                g[u][v]++;
                g[v][u]++;
            }
            for(i=1,cnt=0; i<=50; i++)
                if(in[i]%2==1)
                    cnt++;
            printf("Case #%d
    ",++cas);
            if(cnt!=0) printf("some beads may be lost
    ");
            else
                for(i=1;i<=50;i++)
                    dfs(i);
            if(_) printf("
    ");
        }
        return 0;
    }

    错误

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    struct Edge
    {
      int u,v,use;
    }g[1024];
    int in[100],n;
    
    void dfs(int t,int cnt)
    {
        if(cnt==n) return ;
        int i,u,v;
        for(i=0;i<n;i++)
        {
            if(g[i].use==1) continue;
            u=g[i].u;
            v=g[i].v;
            if(u==t) break;
            if(v==t)
            {
                swap(u,v);
                break;
            }
        }
        g[i].use=1;
        printf("%d %d
    ",u,v);
        dfs(v,cnt+1);
    }
    
    int main()
    {
        int _,i,cnt,m,cas=0;
        scanf("%d",&_);
        while(_--)
        {
            scanf("%d",&n);
            memset(in,0,sizeof(in));
            for(i=0;i<n;i++)
            {
                scanf("%d%d",&g[i].u,&g[i].v);
                g[i].use=0;
                in[g[i].u]++;
                in[g[i].v]++;
            }
            for(i=1,cnt=0;i<=50;i++)
                if(in[i]%2==1)
                    cnt++;
            printf("Case #%d
    ",++cas);
            if(cnt!=0) printf("some beads may be lost
    ");
            else
            {
                printf("%d %d
    ",g[0].u,g[0].v);
                g[0].use=1;
                dfs(g[0].v,1);
            }
            if(_) printf("
    ");
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    【题解】2020 年电子科技大学 ACMICPC 暑假前集训 数据结构
    【逆向】某触控板驱动分析过程
    SME 2019 ACM 题解
    数据结构 & 算法模板汇总
    VS2010win32下cocos2dx控制台打印的方法
    CDMA写码与鉴权(转载)
    mapxtreme开发小结2(c#)
    LONG GetWindowLong函数功能
    无边框的对话框的大小拖动实现
    YUV介绍
  • 原文地址:https://www.cnblogs.com/xryz/p/4847771.html
Copyright © 2011-2022 走看看