题目背景

Farmer 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行,每行一个整数,依次表示路径经过的顶点号。注意数据可能有多组解,但是只有上面题目要求的那一组解是认为正确的。

输入输出样例

输入样例#1:

9
1 2
2 3
3 4
4 2
4 5
2 5
5 6
5 7
4 6
输出样例#1:

1
2
3
4
2
5
4
6
5
7

说明

题目翻译来自NOCOW。

USACO Training Section 3.3

分析:

诡异的五百进制???事实上不看五百进制这一定义本题就是模板题em。。。所以这么说来我又成功的水了一道模板题。。。

CODE:

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <stack>
#define M 1000000
using namespace std;
stack <int> S;
int m,L=M,R;
int f[][],rd[];
int read(){
char c=getchar();int ans=;
while (c<''||c>'') c=getchar();
while (c>=''&&c<='') ans=(ans<<)+(ans<<)+(c^),c=getchar();
return ans;
}
void dfs(int x){
for (int i=L;i<=R;i++)
if (f[x][i]){
f[x][i]--,f[i][x]--;
dfs(i);
}
S.push(x);
return;
}
int main(){
m=read();
for (int i=,x,y;i<=m;i++){
x=read(),y=read();
L=min(L,x);R=max(R,y);
f[x][y]++,f[y][x]++;
rd[x]++,rd[y]++;
}
int low=L;
for (int i=L;i<=R;i++)
if (rd[i]&){low=i;break;}
dfs(low);
while (!S.empty()) printf("%d\n",S.top()),S.pop();
return ;
}

最新文章

  1. 免杀后门之MSF&amp;Veil-Evasion的完美结合
  2. (转,有改动)测试网页响应时间的shell脚本[需要curl支持]
  3. 机器学习中的算法——决策树模型组合之随机森林与GBDT
  4. 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本
  5. Deep_learning
  6. 【转载】CMake 简介和 CMake 模板
  7. asp.net 发布后用IP访问正常,用机器名访问布局出错
  8. 灵活性比Listview更好的RecycleView
  9. PHP学习遇到的问题
  10. Linux内核时间管理(二)——jiffies与jiffies_64释疑
  11. 出现java.sql.SQLException: No suitable driver的几种解决办法
  12. displaytag如何实现获取到每行的id字段的值。
  13. Cucumber使用中问题
  14. SQL反模式学习笔记11 限定列的有效值
  15. JavaScript 原型链学习(一)原型对象
  16. [转] web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!
  17. mac install wget
  18. [蓝桥杯]ALGO-16.算法训练_进制转换
  19. jvm内存分区及各区线程问题
  20. 利用 ImageAI 在 COCO 上学习目标检测

热门文章

  1. Python Tuple元组的操作说明
  2. Java开发最常犯的10个错误,打死都不要犯!
  3. pytest-调整测试用例的执行顺序
  4. ArcMap属性表操作接口ITableWindow3
  5. Python【外】第一节 map()和匿名函数的配合使用
  6. 浅谈Java/Android下的注解
  7. ssh-keyscan - 收集 ssh 公钥
  8. taro-安装及使用-npm
  9. Android中attrs.xml文件的使用详解
  10. Android中父View和子view的点击事件的执行过程