• 【HIHOCODER 1181】欧拉路·二


    描述


    在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌。
    主角继续往前走,面前出现了一座石桥,石桥的尽头有一道火焰墙,似乎无法通过。
    小Hi注意到在桥头有一张小纸片,于是控制主角捡起了这张纸片,只见上面写着:
    将M块骨牌首尾相连放置于石桥的凹糟中,即可关闭火焰墙。切记骨牌需要数字相同才能连接。
    ——By 无名的冒险者
    小Hi和小Ho打开了主角的道具栏,发现主角恰好拥有M快骨牌。
    小Ho:也就是说要把所有骨牌都放在凹槽中才能关闭火焰墙,数字相同是什么意思?
    小Hi:你看,每一块骨牌两端各有一个数字,大概是只有当数字相同时才可以相连放置,比如:
    小Ho:原来如此,那么我们先看看能不能把所有的骨牌连接起来吧。

    输入


    第1行:2个正整数,N,M。分别表示骨牌上出现的最大数字和骨牌数量。1≤N≤1,000,1≤M≤5,000
    第2..M+1行:每行2个整数,u,v。第i+1行表示第i块骨牌两端的数字(u,v),1≤u,v≤N

    输出


    第1行:m+1个数字,表示骨牌首尾相连后的数字
    比如骨牌连接的状态为(1,5)(5,3)(3,2)(2,4)(4,3),则输出"1 5 3 2 4 3"
    你可以输出任意一组合法的解。

    样例输入

    5 5
    3 5
    3 2
    4 2
    3 4
    5 1
    

    样例输出

    1 5 3 4 2 3
    

    题解


    照例放官方题解:http://hihocoder.com/problemset/problem/1181
    注意可能会出现重边

    #include <bits/stdc++.h>
    #define ll long long
    #define inf 1000000000
    #define PI acos(-1)
    #define bug puts("here")
    #define REP(i,x,n) for(int i=x;i<=n;i++)
    #define DEP(i,n,x) for(int i=n;i>=x;i--)
    #define mem(a,x) memset(a,x,sizeof(a))
    using namespace std;
    inline int read(){
        int x=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    const int N=1005;
    int G[N][N];
    int ans[N<<3],tot=0,n,m,x,y;
    void euler(int u){
        REP(v,1,n)  if(G[u][v]>0){
              G[u][v]--;G[v][u]--;
              euler(v);
        }
        ans[tot++]=u;
    }
    int book[N];
    int main(){
        n=read();m=read();
        REP(i,1,m) x=read(),y=read(),G[x][y]++,G[y][x]++;book[x]++,book[y]++;
        int rt=1;
        REP(i,1,n) if(book[i]&1) rt=i;
        euler(rt);
        REP(i,0,tot-1) printf(i==0?"%d":" %d",ans[i]);
        puts("");
        return 0;
    }
    
  • 相关阅读:
    MarkDown
    【ImageView】ImageView点击事件报错空指针
    【原创】初识懒人开发库---ButterKnife
    将博客搬至CSDN
    【练习】内容提供器二、创建自己的内容提供器并测试
    【练习】内容提供器一、访问其他程序的数据
    【转载】Android数据存储之SQLite
    【实战】广播实践,实现登录强制下线
    【实战】聊天窗口的实现
    【转载】Adapter用法总结大全
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/7755193.html
Copyright © 2020-2023  润新知