【题目描述】

农民John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。

John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。

每一个栅栏连接两个顶点,顶点用1到500标号(虽然有的农场并没有500个顶点)。一个顶点上可连接任意多(≥1)个栅栏。所有栅栏都是连通的(也就是你可以从任意一个栅栏到达另外的所有栅栏)。

你的程序必须输出骑马的路径(用路上依次经过的顶点号码表示)。我们如果把输出的路径看成是一个500进制的数,那么当存在多组解的情况下,输出500进制表示法中最小的一个 (也就是输出第一个数较小的,如果还有多组解,输出第二个数较小的,等等)。 输入数据保证至少有一个解。

【输入】

第1行:一个整数F(1≤F≤1024),表示栅栏的数目;

第2到F+1行:每行两个整数i,j(1≤=i,j≤500)表示这条栅栏连接i与j号顶点。

【输出】

输出应当有F+1行,每行一个整数,依次表示路径经过的顶点号。注意数据可能有多组解,但是只有上面题目要求的那一组解是认为正确的。

【输入样例】

9
1 2
2 3
3 4
4 2
4 5
2 5
5 6
5 7
4 6

【输出样例】

1
2
3
4
2
5
4
6
5
7

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#include<set>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 501
#define MOD 123
#define E 1e-6
using namespace std;
int n,m;
int g[N][N];
int dis[N],path[2*N];
int beginn=INF;
int cnt;
void dfs(int i)
{for(int j=beginn;j<=n;j++)if(g[i][j]){g[i][j]--;g[j][i]--;dfs(j);}path[cnt++]=i;
}
int main()
{cin>>m;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;g[x][y]++;g[y][x]++;dis[x]++;dis[y]++;n=max(n,max(x,y));beginn=min(beginn,min(x,y));}int start=beginn;int sum=0;for(int i=beginn;i<=n;i++)if(dis[i]%2){sum++;if(sum==1)start=i;}dfs(start);for(int i=cnt-1;i>=0;i--)cout<<path[i]<<endl;return 0;
}

骑马修栅栏(信息学奥赛一本通-T1375)相关推荐

  1. 信息学奥赛一本通 1375:骑马修栅栏(fence) | 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences

    [题目链接] ybt 1375:骑马修栅栏(fence) 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences [题目考点] 1. 图论:欧拉回路 欧拉回路存在的条件: ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 信息学奥赛一本通 题解目录

    刷题 很全的知识体系 转载:https://blog.csdn.net/u011815404/article/details/79324003 第一部分 C++语言 第一章 C++语言入门 T1001 ...

  5. 洛谷 P2731 骑马修栅栏 Riding the Fences

    P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...

  6. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  7. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  8. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  9. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

最新文章

  1. Java学习总结:18
  2. MySQL 不完全入门指南
  3. 清华大学唐杰老师组:自监督学习最新研究进展
  4. 《Android开发艺术探索》读书笔记——Cha3.2.2使用动画实现View的滑动
  5. Xss-labs闯关总结
  6. vue脚手架中使用axios
  7. 戴尔押宝iSCSI,由低到高组合成型
  8. 泛型 (Generics)一定是最易懂简单的
  9. 不搞虚的!快速把你拉入Docker 的门里
  10. 时间记录html,jquery水平、垂直时间线记录jQuery Timelinr
  11. mysql高效获取两张表共同字段的交集数据
  12. 有什么手机python编辑器_好用的Python编辑器有哪些?
  13. 征服 Apache + SSL
  14. Foxmail,mac邮箱app
  15. python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单
  16. 根据IMSI区别运营商
  17. 企业微信获取客户群里用户的unionid;企业微信获取客户详情
  18. 蓝桥杯大学JAVA题型_蓝桥杯 2020年省赛真题 10月第二场 (Java 大学B组)
  19. [算法] 高斯消元详解
  20. app运行时签名校验

热门文章

  1. 开关电源之PCB安规设计规范
  2. 5.4万Star全部归零,项目作者:十分后悔
  3. 开工第一天,这个超时问题把我干趴下了
  4. 我的新书终于写完了。
  5. 比excel更好用的免费拖拽报表—JimuReport 1.4.4新特性
  6. 低代码开发平台有哪些?
  7. 一个ALV(OO)的实例
  8. CDP客户数据管理平台体系化搭建
  9. Linux系列之fdisk 分区挂盘
  10. matlab预测ARMA-GARCH 条件均值和方差模型