题目链接:

http://codeforces.com/contest/1095/problem/D

通过题意可知,每次输入的两个数一定相邻,所有只要对每次输入的两个数看作是边,通过向前星构建无向图,并且题意说明一定有环,所以只要对这个无向图按照一定的方向找环,遇到重复的停止就行了。

代码:

#include <iostream>     //向前星。
#include <stdio.h>
#include <cstring>
using namespace std;
const int inf=2e5+7;
int head[inf],cnt=0;    //顶点数是不用变的。
struct node
{int from,to;int nxt;
}arr[2*inf];
int ans[inf];void addedge(int a,int b)
{arr[cnt].from=a;arr[cnt].to=b;arr[cnt].nxt=head[a];head[a]=cnt++;
}int main()
{memset(head,-1,sizeof(head));int n;int a,b,aa,bb;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d %d",&a,&b);if(i==0)aa=a,bb=b;addedge(a,b);addedge(b,a);}int one=1,flag=0;int thenow=2e5+7;int p=0;while(one!=1||flag==0){flag=1;//printf("%d ",one);ans[p++]=one;for(int i=head[one];i!=-1;i=arr[i].nxt){int to1=arr[i].to;if(to1!=thenow){thenow=one;one=to1;goto x;}/*for(int j=head[to1];j!=-1;j=arr[j].nxt){int to2=arr[j].to;if(to2==one)continue;else{one=to2;goto x;}}*/}x:;}if(ans[1]==aa||ans[2]==aa){for(int i=0;i<n;i++)printf("%d ",ans[i]);printf("\n");}else{for(int i=n-1;i>=0;i--)printf("%d ",ans[i]);printf("\n");}return 0;
}

codeforces div3 D Circular Dance (链式向前星)相关推荐

  1. DijKstra算法普通+堆优化链式向前星

    朴素版本 #include<bits/stdc++.h> using namespace std; const int maxn = 10010; const int inf = 0x3f ...

  2. 链式向前星(一个优秀的存储图的数据结构)

    在学习图的存储的时候,我们通常会有邻接矩阵和邻接表两种选择,邻接矩阵好写但效率低,邻接表不好写写但效率高,这里有一种优秀的数据结构,那便是用静态链表头插法实现的链式向前星. 先给出一下邻接矩阵 可以看 ...

  3. 迪杰斯特拉--链式向前星

    //算法-迪杰斯特拉 -链式向前星存边实现,加上优先队列 #include <iostream> #include <algorithm> #include <queue ...

  4. 图论 --- spfa + 链式向前星 (模板题) dlut 1218 : 奇奇与变形金刚

    1218: 奇奇与变形金刚 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 130  Solved: 37 [Submit][Status][Web B ...

  5. c语言建立线性表(顺序储存,链式储存,循环,双向)全

    c语言建立线性表 顺序储存 储存结构 初始化(建立)顺序表 查找操作 一.按值查找,找到返回对应的下标 二.按照下标返回元素 插入操作 一.在线性表尾部添加元素 二.在位置i处插入元素 三.顺序表(有 ...

  6. BP算法双向传_链式求导最缠绵(深度学习入门系列之八)

    摘要: 说到BP(Back Propagation)算法,人们通常强调的是反向传播,其实它是一个双向算法:正向传播输入信号,反向传播误差信息.接下来,你将看到的,可能是史上最为通俗易懂的BP图文讲解, ...

  7. 可持久化链表(链式前向星)

    http://codeforces.com/group/aUVPeyEnI2/contest/229670 1 /******************************************* ...

  8. 链表list(链式存储结构实现)_数据结构知否知否系列之 — 线性表的顺序与链式存储篇(8000 多字长文)...

    从不浪费时间的人,没有工夫抱怨时间不够. -- 杰弗逊 线性表是由 n 个数据元素组成的有限序列,也是最基本.最简单.最常用的一种数据结构. 作者简介:五月君,Nodejs Developer,热爱技 ...

  9. STL链式存储结构——————list链表

    c++的STL(标准模版库)提供了链表类的操作,称为list(表),是双向链表实现的 链式存储结构在实现插入.删除操作时不需要移动大量的数据元素.所以,链式存储结构适用于经常需要进行插入和删除操作的线 ...

最新文章

  1. 3、MySQL优化数据库结构的3种方法
  2. Webex 如何在在线会议领域保持优势?
  3. day13 生成器 三元运算 列表解析
  4. void和void*
  5. 玩转oracle 11g(38):rman备份-全库恢复
  6. 使用ubuntu的新立德下载和安装的Eclipse无法在其help菜单中连接并安装ADT
  7. I2C总线学习—查缺补漏—对数据有效性的思考
  8. 利用form的“accept-charset”在不同编码的页面间提交表单
  9. 使用Filter,Listener 时无法注入Bean的解决方法
  10. [bzoj1969] [Ahoi2005]LANE 航线规划
  11. 【6.24-AppCan移动开发大会倒计时】科大讯飞来了!
  12. 解决:本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
  13. 区块链核心技术-P2P网络
  14. mysql 裸设备_MySQL使用裸设备存储
  15. linux中opt是啥文件夹,linux根目录的各文件夹里装了什么
  16. 合成全身火焰燃烧人物海报图片的PS教程
  17. Unity TileMap工具教程
  18. Android跳转到应用商店的APP详情页面
  19. 语言缩写c-a,常见的国家语言缩写以及语言的代码
  20. HTML中的meta的属性作用

热门文章

  1. swift3.0截取View生成图片 图片截取成新图片
  2. 8-th Android开发之服务器端
  3. NO.72 参与项目管理、演示和总结
  4. 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能...
  5. 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!
  6. 一篇文章弄懂Java多线程基础和Java内存模型
  7. reactjs组件实例的三大属性之state属性使用示例
  8. linux shell 判断文件是否存在
  9. java开发手册:线程池不允许使用 Executors 去创建
  10. K8S批量scale deploy的副本为0,结合xargs -I使用