时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌。

主角继续往前走,面前出现了一座石桥,石桥的尽头有一道火焰墙,似乎无法通过。

小Hi注意到在桥头有一张小纸片,于是控制主角捡起了这张纸片,只见上面写着:

将M块骨牌首尾相连放置于石桥的凹糟中,即可关闭火焰墙。切记骨牌需要数字相同才能连接。
——By 无名的冒险者

小Hi和小Ho打开了主角的道具栏,发现主角恰好拥有M快骨牌。

小Ho:也就是说要把所有骨牌都放在凹槽中才能关闭火焰墙,数字相同是什么意思?

小Hi:你看,每一块骨牌两端各有一个数字,大概是只有当数字相同时才可以相连放置,比如:

小Ho:原来如此,那么我们先看看能不能把所有的骨牌连接起来吧。

提示:Fleury算法求欧拉路径

输入

第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
注意:此题目必须从1号结点开始遍历才能AC.无向图删边的时候要将与u,v相关联的有向边同时删除。
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN=;
struct Edge{
int to,net;
}es[MAXN+MAXN];
int n,m;
int head[MAXN],tot;
void addedge(int u,int v)
{
es[tot].to=v;
es[tot].net=head[u];
head[u]=tot++;
}
int vis[MAXN+MAXN];
int path[MAXN],top;
void dfs(int u)
{
for(int i=head[u];i!=-;i=es[i].net)
{
if(!vis[i])
{
vis[i]=;
vis[i^]=;
dfs(es[i].to);
}
}
path[top++]=u;
}
int main()
{
memset(head,-,sizeof(head));
scanf("%d%d",&n,&m);
for(int i=;i<m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
addedge(u,v);
addedge(v,u);
}
dfs();
for(int i=;i<top-;i++)
{
printf("%d ",path[i]);
}
printf("%d\n",path[top-]);
return ;
}

最新文章

  1. Python 输入输出
  2. eclipse的debug模式启动缓慢
  3. COleDateTime类型的应用
  4. [kuangbin带你飞]专题十二 基础DP1
  5. 如何在后台动态生成ASPxCheckBoxList标签并循环(数据调用存储过程)
  6. python进度条代码
  7. MigLayout
  8. javascript系列之执行上下文
  9. oracle_彻底删除oracle
  10. KindEditor文件上传成功前端显示上传失败
  11. 分享一个二维码图片识别控制台程序Demo
  12. JAVA 语法2
  13. 将本地文件传输到GitHub
  14. .Net语言 APP开发平台——Smobiler学习日志:如何在手机中调用邮件发送接口
  15. 在 CentOS 7 中安装 MySQL 8
  16. [九省联考2018]IIIDX
  17. 吴恩达机器学习笔记13-正规方程(Normal Equation)
  18. 【CentOS】JDK的安装
  19. js将文字转化为语音并播放
  20. Python二进制转十进制算法、十进转二进制算法

热门文章

  1. 使用concurrent.futures和ProcessPoolExecutor来替代线程和进程
  2. 最长公共子序列的C++实现---附二维指针的使用方法
  3. PHP 面向对象及Mediawiki 框架分析(一)
  4. apache基于端口的虚拟主机配置
  5. multi update caused deadlock problem
  6. EF Code-First 学习之旅 DataAnnotations
  7. vs2010下创建webservice ----第一天(建立项目,以及不连数据库进行加减乘除)
  8. adb 解说
  9. 用SQL语句删除除了id不同,其他都相同的学生表信息
  10. mysql与mongodb命令对比