#include<iostream>
#include<vector>
#include<algorithm>
#include<stack>
#define N 10010
using namespace std; vector<long int> head[N];
stack<long int> way;
long int n;
bool visited[N][N];
bool vis[N];
long long int d[N]; void addEdge(long int x,long int y) {
head[x].push_back(y);
head[y].push_back(x);
d[x]++;
d[y]++;
} void dfs(int u) {
vis[u]=;
vector<long int>::iterator pos;
for(pos=head[u].begin(); pos!=head[u].end(); pos++) {
long int v=*pos;
if(!vis[v]) {
dfs(v);
}
} } void euler(long int u) {
vector<long int>::iterator pos;
//利用dfs的方法遍历所有的边
for(pos=head[u].begin(); pos!=head[u].end(); pos++) {
long int v=*pos;
if(!visited[u][v]) {
visited[u][v]=visited[v][u]=;
//我这里不用栈,而是在进行下一个点之前就把当前点输出,样例是过了,可是交上去只能得10分
//cout<<' '<<v;
euler(v);
//用栈的话就没问题,可以得90分。
way.push(v);
}
}
} int main() {
long long int m;
cin>>n>>m ;
while(m--) {
long int x,y;
cin>>x>>y;
addEdge(x,y);
}
//以前总是得90分的原因就是没有考虑图不连通的情况
//这里从第一个点出发dfs所有的点,最后检验即可
dfs();
bool flag=;
for(int i=; i<=n; i++)
if(vis[i]==) {
flag=;
break;
}
//如果是不连通的,直接输出-1
if(flag==) cout<<-;
else {
long long int odd_num=;
for(long int i=; i<=n; i++) {
sort(head[i].begin(),head[i].end());
if(d[i]%)
odd_num++;
}
if(odd_num>)
cout<<-;
else {
cout<<;
euler();
while(!way.empty()) {
cout<<' '<<way.top();
way.pop();
}
}
} return ;
}

CCF第四题无向图打印路径的更多相关文章

  1. CCF第四题无向图打印路径 欧拉问题

    #include<iostream> #include<vector> #include<algorithm> #include<stack> #def ...

  2. 第十三次CCF第四题 1803——04 博弈

    我又写了一个简洁版的2.0: 可以作为博弈搜索树的模板  : https://www.cnblogs.com/xidian-mao/p/9389974.html 废话ps: 开始觉得这是一道简单得博弈 ...

  3. CodeForces 10D. LCIS 最长公共上升子序列模板题 + 打印路径

    推荐一篇炒鸡赞的blog. 以下代码中有打印路径. #include <algorithm> #include <iostream> #include <cstring& ...

  4. UVA624 CD,01背包+打印路径,好题!

    624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...

  5. UVA 10054 The Necklace(欧拉回路,打印路径)

    题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  6. AOE网上的关键路径(最长路径 + 打印路径)

    题目描述 一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图.     AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG ...

  7. 经典算法题每日演练——第十四题 Prim算法

    原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...

  8. SPFA和FLOYD算法如何打印路径

    早晨碰到了一题挺裸的最短路问题需要打印路径:vijos1635 1.首先说说spfa的方法: 其实自己之前打的最多的spfa是在网格上的那种,也就是二维的 一维的需要邻接表+queue 以及对于que ...

  9. FatMouse's Speed ~(基础DP)打印路径的上升子序列

    FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take ...

随机推荐

  1. 10月17日下午MySQl数据库CRUD高级查询

    高级查询:1.连接查询 #适用于有外键关系的  没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...

  2. JavaWeb学习笔记——jsp:setproperty和getproperty

  3. Java递归算法——三角数字

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  4. PHP ob系列函数详解

    一. 相关函数简介:    1.Flush:刷新缓冲区的内容,输出.    函数格式:flush()    说明:这个函数经常使用,效率很高.    2.ob_start :打开输出缓冲区    函数 ...

  5. Mastering C# structs

    http://www.developerfusion.com/article/84519/mastering-structs-in-c/

  6. yourphp内置编辑器

    {: $Form->editor(array(')),$vo[desc])} form.php 如: <tr> <td>机器故障:</td> <td&g ...

  7. Multiple actions were found that match the request Web API

    在WebAPI工程入口不对外公开的接口不能使用public. [HttpPost] public string PostRequest([FromBody] Model model) { /// } ...

  8. Autofac和DynamicProxy2搭配实现Aop动手训练

    http://www.cnblogs.com/zhengwl/p/5433181.html Aop含义:aspect-oriented programming 实现工具介绍 Autofac是一个比较流 ...

  9. ApiHelper

    public static class ApiHelper { public static ReslultInfo<K> Try<K>(Action<ReslultInf ...

  10. Python之路【第六篇】:面向对象编程相关

    判断类与对象关系 isinstance(obj, cls)  判断对象obj是否是由cls类创建的 #!/usr/bin/env python #-*- coding:utf-8 -*- class ...