Codeforces Beta Round #29 (Div. 2, Codeforces format), problem: (C) Mail Stamps 图论

来源:互联网 发布:matlab 离散数据 fft 编辑:程序博客网 时间:2024/05/15 06:26

题意:给定一些边,求出其中的一条通路。保证那些边实在同一条线段上的。

 #include<cstdio>#include<utility>#include<map>using namespace std;map<int,int>node;const int LMT=100003;int mp[LMT][3],see[LMT],du[LMT],cnt;int main(void){    int n,u,v,x,y,s=0,pre=0;    scanf("%d",&n);    for(int i=0;i<n;i++)    {        scanf("%d%d",&u,&v);        if(node.find(u)==node.end())node.insert(make_pair(u,cnt++));        if(node.find(v)==node.end())node.insert(make_pair(v,cnt++));        x=node[u];y=node[v];        mp[x][++mp[x][0]]=y;        mp[y][++mp[y][0]]=x;        see[x]=u;see[y]=v;        du[x]++;du[y]++;    }    for(s=0;s<cnt&&du[s]!=1;s++);    for(int i=0;i<cnt;i++)    {        printf("%d ",see[s]);        if(mp[s][1]==pre)        {            pre=s;s=mp[s][2];        }        else        {            pre=s;            s=mp[s][1];        }    }    printf("\n");    return 0;}


原创粉丝点击